是否有适用于Android的API可让您提取主要背景颜色以创建透明叠加层,以便我可以在其上面书写文字。
例如,如果4幅图像的主色为褐色,则叠加层为透明棕色。
我希望创建类似下图的内容,以便在图片顶部添加信息。它取自谷歌播放音乐。
谢谢
答案 0 :(得分:1)
可能有一个解决方案:
我假设您将4个imageview放在RelativeLayout(称为parentLyt)
中RelativeLayout view = (RelativeLayout) findViewById(R.id.parentLyt);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
您现在可以获得4张图片的位图:
Bitmap bitmap = view.getDrawingCache();
并在此位图上使用Palette 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);
}
});
答案 1 :(得分:0)
您可以使用alpha来实现此类透明度。因此,当您定义颜色时,通常使用#RRGGBB(红绿蓝),但您也可以使用#AARRGGBB,您也可以在其中指定alpha。
#00RRGGBB
完全透明,#80RRGGBB
就像半透明一样。您可以选择这样的颜色并将其用作背景。