如何根据覆盖的ImageView的颜色更改文本的颜色?

Rip*_*de4 5 user-interface android imageview android-layout color-detection

因此,我在上传的用户上方设置了带有白色文本标签的透明按钮ImageView。如果用户上传的图像大部分是白色的,则按钮很难看清,即使不是完全看不见。

有谁知道获取ImageView原始图片/可绘制对象的平均颜色的方法吗?如果可以,可以将其与某个阈值进行比较,可以尝试...如果可以,则可以将按钮上文本的颜色更改为该颜色的反色。 。或者其他的东西??

只是在这里随地吐痰..

当然,如果有人知道更好的方法,将不胜感激更多信息,谢谢!!

ear*_*jim 4

您可以使用Palette类。

来自开发者指南

您可以使用类中的 getter 方法从图像中检索突出的颜色Palette,例如Palette.getVibrantColor().

Palette.from()需要一个Bitmap参数,所以你必须从你的ImageView.

像这样的东西应该有效:

Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
Palette colorPalette = Palette.from(bitmap).generate();
Run Code Online (Sandbox Code Playgroud)

然后您可以在此Palette实例上调用适当的方法来获取突出的颜色,例如:

int darkVibrantColor = colorPalette.getDarkVibrantColor(someDefaultColor);
Run Code Online (Sandbox Code Playgroud)

查看此示例屏幕截图,了解该类如何Palette识别颜色:

在此输入图像描述