Android Paint setAlpha(int a) 方法¶
更新日期 2025-12-22
- 2025-12-22 创建文档
在自定义View中会使用到Paint,设置画笔颜色时经常使用setColor方法,设置不透明度可用setAlpha方法。
setAlpha方法源码(Android API34)
public void setAlpha(int a) {
ColorSpace cs = Color.colorSpace(mColor);
float r = Color.red(mColor);
float g = Color.green(mColor);
float b = Color.blue(mColor);
mColor = Color.pack(r, g, b, a * (1.0f / 255), cs);
nSetAlpha(mNativePaint, a);
}
- 0:完全透明(Invisible)。
- 255:完全不透明(Opaque)。
- 127:大约 50% 的透明度。
方法中先把当前颜色的rgb值解析出来,把传入的alpha值映射计算为小数。最后打包会mColor
setColor方法源码(Android API34)
public void setColor(@ColorInt int color) {
nSetColor(mNativePaint, color);
mColor = Color.pack(color);
}
因此如果先调用setAlpha方法,再调用setColor。之前设置的alpha值就无效了,被后面的setColor覆盖。
所以在开发中要注意先 setColor,后 setAlpha
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~