作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我从这里抓取了一些 Material 设计图标:
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 是正确的答案吗?如果是这样,您是否担心应用变得过大?
最佳答案
您可以使用 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
关于android - 设置 Material 设计图标的透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118638/
我是一名优秀的程序员,十分优秀!