#android #image #colors #bitmap #gradient
Вопрос:
Есть ли способ получить цвета по краям изображения и увеличить их до размера экрана в виде градиента ?
Ну, я имею в виду, когда у вас есть квадратное изображение, и вы хотите, чтобы оно соответствовало разрешению экрана. Поэтому нам нужно увеличить высоту изображения с помощью градиента.
Я попытался использовать библиотеку палитр и получить яркие и приглушенные цвета, чтобы сделать градиент… это просто не кажется хорошим. Как мы можем получить цвета на краю изображения и сделать из них градиент.
private void getColors(Drawable drawable) {
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
Palette.from(bitmap)
.generate(palette -> {
assert palette != null;
int vibrantColor = palette.getVibrantColor(0x000000);
int lightVibrantColor = palette.getLightVibrantColor(0x000000);
int darkVibrantColor = palette.getDarkVibrantColor(0x000000);
int mutedColor = palette.getMutedColor(0x000000);
int darkMutedColor = palette.getDarkMutedColor(0x000000);
int lightMutedColor = palette.getLightMutedColor(0x000000);
});
}
Комментарии:
1. Это, вероятно, никогда не будет выглядеть хорошо, если вы использовали подход edge. Я бы выбрал средний цвет, затемнил его и использовал в качестве фона. Таким образом, он всегда будет соответствовать теме. Затем добавьте какую-нибудь тень в изображение, и оно должно выглядеть нормально.