Android 获取imageView颜色并设置补色
我制作了Viewpager,只有ImageView 从服务器上删除图像。所以它可以是亮的也可以是暗的 注意当前页面/总页面的布局如下 现在我想做的是,如果图像是明亮的,请注意布局使其变暗 如果图像是黑暗的,注意布局使明亮 所以我的问题是Android 获取imageView颜色并设置补色,android,colors,background-image,Android,Colors,Background Image,我制作了Viewpager,只有ImageView 从服务器上删除图像。所以它可以是亮的也可以是暗的 注意当前页面/总页面的布局如下 现在我想做的是,如果图像是明亮的,请注意布局使其变暗 如果图像是黑暗的,注意布局使明亮 所以我的问题是 如何知道当前图像是亮还是暗 我如何从图像中生成互补色 Android支持库r21及更高版本包括Palette类,它允许您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递到加载图像的背景线程中的Palette.generate()静态方法。如果无法使用该
Android支持库r21及更高版本包括Palette类,它允许您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递到加载图像的背景线程中的Palette.generate()静态方法。如果无法使用该线程,请调用palete.generateAsync()方法并提供一个侦听器 要在项目中使用Palette类,请将以下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)。Android支持库r21及更高版本包括调色板类,它允许您从图像中提取突出的颜色。要提取这些颜色,请将位图对象传递到加载图像的背景线程中的Palette.generate()静态方法。如果无法使用该线程,请调用palete.generateAsync()方法并提供一个侦听器 要在项目中使用Palette类,请将以下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)。谢谢您的建议。我会的!谢谢你的建议。我会的!