Я использую палитра-v7: 23.2.1 с скольжением: 3.7.0, как указано ниже, но иногда темный яркий цвет не успешно извлечен, и вместо этого я получаю цвет по умолчанию.Palette использования с Glide иногда не загружать темные яркие цвета
После того, как я очистил кэш глиссада и попробую его с тем же изображением снова, я получаю правильный цвет. Странно, что светлый яркий цвет всегда извлекается, а темный - нет.
В чем может быть проблема и как ее решить?
В onCreateView():
Glide.with(mContext)
.load(artworkUrl)
.asBitmap()
.into(new BitmapImageViewTarget(mArtworkInToolbar) {
@Override
public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
new Palette.Builder(bitmap).generate(paletteAsyncListener);
super.onResourceReady(bitmap, anim);
}
});
СЛУШАТЕЛЬ:
public final Palette.PaletteAsyncListener paletteAsyncListener =
new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
if (palette == null) return;
int default = ContextCompat.getColor(mContext, R.color.colorPrimary);
int color = palette.getVibrantColor(default); //always ok
int colorDark = palette.getDarkVibrantColor(default); //not always
// --- Setting the color --
}
};
https://github.com/bumptech/glide/wiki/Custom-targets#overriding- default-behavior эта ссылка дает причину этой проблемы и решения – redblood
Первое решение, которое я использовал, не рекомендуется, так как второй асинхронный вызов может обновить wr ong ViewHolder, но это не мое дело. Я также попробовал второй пример, но иногда он не будет извлекать второй цвет или сначала в том же сценарии и том же изображении. – Niorko