这就是我获得透明 RGB 整数值的方式
Bitmap myDisplayBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_pic);
if (myDisplayBitmap != null && !myDisplayBitmap.isRecycled())
{
Palette palette = Palette.from(myDisplayBitmap).generate();
Palette.Swatch vibrantSwatch = palette.getDarkVibrantSwatch();
/*If vibrantSwatch is null then return 0 otherwise :-) */
int opaqueDarkVibrantColor = vibrantSwatch != null ? vibrantSwatch.getRgb() : 0;
/*Call the method that returns alpha color */
int transparentRGBInt = getColorWithAplha(opaqueDarkVibrantColor, 0.5f)
yourLayout.setBackgroundColor(transparentRGBInt);
// prints something like -2146428888
Log.i("info", String.valueOf(transparentRGBInt));
}
这是返回 alpha 值的方法,您需要传递两个参数 int RGB 颜色值和透明度比率。
/**
* @param color opaque RGB integer color for ex: -11517920
* @param ratio ratio of transparency for ex: 0.5f
* @return transparent RGB integer color
*/
private int getColorWithAplha(int color, float ratio)
{
int transColor = 0;
int alpha = Math.round(Color.alpha(color) * ratio);
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
transColor = Color.argb(alpha, r, g, b);
return transColor ;
}
编辑
使用它从 int RGB 值中获取 Hex 值
String opHexColor = String.format("#%06X", (0xFFFFFF & opaqueDarkVibrantColor));