Подбирать цвет в зависимости от картинки
Как можно подбирать цвет в зависимости от картинки, как это сделано на панели задач при наведении в windows 7?
Требуется менять фон в зависимости от картинки в android.
Как можно подбирать цвет в зависимости от картинки, как это сделано на панели задач при наведении в windows 7?
Требуется менять фон в зависимости от картинки в android.
Выбранные цвета они называют вибрирующими(т.е. яркий цвет, выделенный из изображения)
Вибрирующий. Palette.getVibrantSwatch()
Вибрирующий темный. Palette.getDarkVibrantSwatch()
Вибрирующий светлый. Palette.getLightVibrantSwatch()
Заглушенный. Palette.getMutedSwatch()
Заглушенный темный. Palette.getDarkMutedSwatch()
Заглушенный светлый. Palette.getLightMutedSwatch()
Есть 2 способа получения цвета - синхронный и асинхронный.
Синхронный
// Synchronous methods.
// --------------------------------
// These should be used when you have access to the underlying image loading thread.
// Picasso allows this through a Transformation. For other libraries, YMMV.
// Uses the default palette size (16).
Palette p = Palette.generate(bitmap);
// Allows you to specify the maximum palette size, in this case 24.
Palette p = Palette.generate(bitmap, 24);
Асинхронный
// Asynchronous methods
// --------------------------------
// This is the quick and easy integration path. Internally uses an AsyncTask so
// this may not be optimal (since you're dipping in and out of threads)
// Uses the default palette size (16).
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
// Here's your generated palette
}
});
// Allows you to specify the maximum palette size, in this case 24.
Palette.generateAsync(bitmap, 24, new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
// Here's your generated palette
}
});
И еще нужно учесть, что класс не всегда может найти вибрирующий или заглушенный цвет. Все зависит от изображений и от размера палитры.
Класс доступен для Android >=21.
UPD Если использовать Support Library, то класс можно использовать для Android >=7 Support library palette
Подробнее тут.