我从这里抓取一些材料设计图标:
https://google.github.io/material-design-icons/#getting-icons
我需要一些透明的'灰色'/'静音'。
我尝试创建一个可绘制的位图来定义alpha:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_info_outline_black_24dp"
android:alpha=".7">
</bitmap>
然而这不起作用。
创建具有不同透明度的多个png是正确的答案吗?如果是这样,任何对应用程序变得不必要的担忧?
答案 0 :(得分:1)
您可以使用 setColorFilter
动态制作private Drawable changeColor() {
try {
Drawable image;
int imageId = R.drawable.ic_folder_black;
int color = Color.parseColor("#A6000000");
image = getResources().getDrawable(imageId, getTheme());
image.setColorFilter(color, PorterDuff.Mode.SRC_IN);
return image;
} catch (IllegalStateException e) {
}
return null;
}
然后在像这样的ImageView上调用该方法
imageView.setImageDrawable(changeColor());
在颜色上,A6是alpha,它就像透明度的65%。下面是透明度级别及其十六进制值的列表。 I got the list from here.
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
**编辑**
我们将过滤器设置为 PorterDuff.Mode.SRC_IN ,因为这是在您希望的任何其他颜色上更改黑色图像的唯一方法。对于具有不同颜色的图像,请使用 PorterDuff.Mode.MULTIPLY