用于提取背景颜色的材质设计API

时间:2014-11-03 11:24:32

标签: android android-layout

是否有适用于Android的API可让您提取主要背景颜色以创建透明叠加层,以便我可以在其上面书写文字。

例如,如果4幅图像的主色为褐色,则叠加层为透明棕色。

我希望创建类似下图的内容,以便在图片顶部添加信息。它取自谷歌播放音乐。

google play music

谢谢

2 个答案:

答案 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就像半透明一样。您可以选择这样的颜色并将其用作背景。