设置材料设计图标的透明度

时间:2015-12-06 14:44:07

标签: android transparency material-design android-drawable

我从这里抓取一些材料设计图标:

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是正确的答案吗?如果是这样,任何对应用程序变得不必要的担忧?

1 个答案:

答案 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