获取imageView颜色并设置补色
Get imageView color and set complementary color
我做了Viewpager,只有ImageView。
来自服务器的图像。所以可以亮也可以暗。
还有像这样通知当前页/总页的布局。
现在我想使图像变亮,注意布局变暗。
如果图像较暗,请注意布局变亮。
所以。 我的问题是
- 如何知道当前图像是亮的还是暗的?
- 以及如何从图像中制作
complementary color
?
Android 支持库 r21 及更高版本包含调色板 class,可让您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递给加载图像的后台线程中的 Palette.generate() 静态方法。如果您不能使用该线程,请调用 Palette.generateAsync() 方法并提供一个侦听器。
要在您的项目中使用 Palette class,请将以下 Gradle 依赖项添加到您应用的模块中:
implementation 'androidx.palette:palette:$version'
从图像中获取颜色:
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
public void onGenerated(Palette palette) {
// Do something with colors...
}
});
调色板库尝试提取以下六种颜色配置文件:
轻盈充满活力,
充满活力,
黑暗充满活力,
灯光静音,
静音和
黑暗静音。
在 RGB 模型中寻找补色非常简单。对于任何给定的颜色,例如红色 (#FF0000),您需要找到与红色相加后生成白色 (0xFFFFFF) 的颜色。当然,您需要做的就是从白色中减去红色并得到青色 (0xFFFFFF - 0xFF0000 = 0x00FFFF)。
我做了Viewpager,只有ImageView。
来自服务器的图像。所以可以亮也可以暗。
还有像这样通知当前页/总页的布局。
现在我想使图像变亮,注意布局变暗。
如果图像较暗,请注意布局变亮。
所以。 我的问题是
- 如何知道当前图像是亮的还是暗的?
- 以及如何从图像中制作
complementary color
?
Android 支持库 r21 及更高版本包含调色板 class,可让您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递给加载图像的后台线程中的 Palette.generate() 静态方法。如果您不能使用该线程,请调用 Palette.generateAsync() 方法并提供一个侦听器。
要在您的项目中使用 Palette class,请将以下 Gradle 依赖项添加到您应用的模块中:
implementation 'androidx.palette:palette:$version'
从图像中获取颜色:
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
public void onGenerated(Palette palette) {
// Do something with colors...
}
});
调色板库尝试提取以下六种颜色配置文件:
轻盈充满活力, 充满活力, 黑暗充满活力, 灯光静音, 静音和 黑暗静音。
在 RGB 模型中寻找补色非常简单。对于任何给定的颜色,例如红色 (#FF0000),您需要找到与红色相加后生成白色 (0xFFFFFF) 的颜色。当然,您需要做的就是从白色中减去红色并得到青色 (0xFFFFFF - 0xFF0000 = 0x00FFFF)。