跳转至

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 ~ 255。

  • 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

本站说明

一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~

📖AndroidTutorial 📚AndroidTutorial 🙋反馈问题 🔥最近更新 🍪投喂作者