Android Palette: Почему бы не работать с этим конкретным изображением?

В настоящее время я работаю с API палитры из библиотеки поддержки ( https://developer.android.com/tools/support-library/features.html#v7-palette )

Нижеприведенный код отлично работает с сотнями изображений, без проблем. Я устанавливаю цвет текста и фона в зависимости от результатов палитры. Результат потрясающий и очень приятный (если вы хотите повторно использовать его в своем приложении, не стесняйтесь!).

К сожалению, в сотнях картин только один не работает и дает странные результаты. Это один => http://www.cineswellington.com/images/film/140929075044.jpg

Поскольку у палитры нет документа или режима отладки, я действительно задаюсь вопросом, что может случиться, и если есть способ понять, есть ли недостаток в исходном изображении или что-то еще.

Picasso.with(getActivity()).load("http://www.cineswellington.com/images/film/140929075044.jpg").into(t); private Target t = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { public void onGenerated(Palette palette) { ((ImageView) v.findViewById(R.id.iv)).setImageDrawable(new BitmapDrawable(bitmap)); //At this point, the ImageView is correctly filled, so the bitmap object has no issue. int textColor = palette.getLightMutedColor(android.R.color.darker_gray); int bgColor = palette.getDarkMutedColor(android.R.color.white); Log.d("CVE","textColorInt: "+ textColor); Log.d("CVE","bgColorInt: "+bgColor); Log.d("CVE","textColorHexa: "+String.format("#%06X", 0xFFFFFF & textColor)); Log.d("CVE","bgColorHexa: "+String.format("#%06X", 0xFFFFFF & bgColor)); } }); } }; 

И это результат:

 textColorInt: 17170432 bgColorInt: 17170443 textColorHexa: #060000 bgColorHexa: #06000B 

Если кто-то может помочь мне воспроизвести ошибку или сказать мне, что это происходит только на моей стороне, это было бы потрясающе

Похоже, что изображение состоит из ярких цветов, поэтому было бы трудно создать приглушенную цветовую палитру, которая бы соответствовала ей. Неудивительно, что алгоритм этого не делает.

Попробуйте использовать функции getVibrantColor() если приглушенные темные / светлые изображения слишком похожи.

Я думаю, что нет никаких минимальных цветовых различий между цветами «светлый приглушенный» и «темный приглушенный» в алгоритме «Палитра», т. Е. Он не должен использоваться как цвет текста поверх другого.

В демо Romain Guy в Google IO он использовал «свет приглушенный» для фона и «светлый яркий» для текста.

Разве вы не должны использовать яркий цвет для своего текста?

Intereting Posts
Android AppCompat SearchView EditText пропускает нижнюю строку на pre-lollipop Android BroadcastReceiver onReceive () дважды вызывается на android 5.1.1 даже после одного регистра Что такое библиотека RoboSpice в android Где я могу определить свой OnClickListener для закрытия пользовательского диалогового окна в Android? Использование Google Analytics для отслеживания фрагментов Как заполучить меню ActionBar во время настройки пользовательского интерфейса? Как включить предпочтение в приложении для Android, когда другие предпочтения отключены? FitSystemWindows программно для прозрачности строки состояния Java.lang.RuntimeException: Не удалось создать экземпляр активности ComponentInfo {…}: java.lang.ClassNotFoundException: не нашел класс Как указать правильный размер диалогового окна в файле макета XML для диалогового окна Android? Странная авария на холсте на Android 4.0.3. A / libc: фатальный сигнал 11 (SIGSEGV) Android.widget.TextView не может быть добавлен в android.view.ViewGroup SetEnabled (), setClickable () не работает Производительность Choppy ProgressBar при использовании в ListView Использование анимации Android L для переключения между действиями