Цвета краев изображения в Android

#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. Я бы выбрал средний цвет, затемнил его и использовал в качестве фона. Таким образом, он всегда будет соответствовать теме. Затем добавьте какую-нибудь тень в изображение, и оно должно выглядеть нормально.