Android 提取背景颜色的材质设计API
有没有Android的API可以让你提取主要的背景色来创建一个透明的覆盖层,这样我就可以在上面写文本了 例如,如果4幅图像的主色为棕色,则覆盖层为透明棕色 我希望创建类似下图的内容,以便在图片顶部添加信息。这是从谷歌播放音乐Android 提取背景颜色的材质设计API,android,android-layout,Android,Android Layout,有没有Android的API可以让你提取主要的背景色来创建一个透明的覆盖层,这样我就可以在上面写文本了 例如,如果4幅图像的主色为棕色,则覆盖层为透明棕色 我希望创建类似下图的内容,以便在图片顶部添加信息。这是从谷歌播放音乐 谢谢您可以使用alpha来实现这样的透明度。因此,定义颜色时,通常使用#RRGGBB(红-绿-蓝),但也可以使用#AARRGGBB,在这里还可以指定alpha。 #00RRGGBB是完全透明的,而#80RRGGBB就像是半透明的。您可以选择这样的颜色并将其用作背景。可能有
谢谢您可以使用alpha来实现这样的透明度。因此,定义颜色时,通常使用#RRGGBB(红-绿-蓝),但也可以使用#AARRGGBB,在这里还可以指定alpha。
#00RRGGBB
是完全透明的,而#80RRGGBB
就像是半透明的。您可以选择这样的颜色并将其用作背景。可能有一种解决方案:
我假设您将4个imageview放在一个RelativeLayout(称为parentLyt)中
现在,您可以获得4幅图像的位图:
Bitmap bitmap = view.getDrawingCache();
并在此位图上使用调色板API:
Palette colorPalette = Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
public void onGenerated(Palette palette) {
int color = palette.getLightVibrantSwatch().getRgb();
// Do something with colors...just for example :
// Convert to hex format and add 88 alpha channel "#88RRGGBB"
String transparentColor = String.format("#88%06X", 0xFFFFFF & intColor);
// Convert back to Color object aka int
int finalColor = Color.parseColor(transparentColor);
}
});
我知道alpha透明度,但我想问的是一个函数,用于检索构成背景的图像的主色。然后将该颜色用作图像的透明前景。很抱歉,如果问题不清楚,我会更新它。好的,'主要'有区别:)你应该看看新的,这是这个API功能的总结谢谢!!这正是我想要的:)我创建了一个答案,这是一个简单的例子,说明如何使用它来解决你的pb;)
Palette colorPalette = Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
public void onGenerated(Palette palette) {
int color = palette.getLightVibrantSwatch().getRgb();
// Do something with colors...just for example :
// Convert to hex format and add 88 alpha channel "#88RRGGBB"
String transparentColor = String.format("#88%06X", 0xFFFFFF & intColor);
// Convert back to Color object aka int
int finalColor = Color.parseColor(transparentColor);
}
});