Android 对 颜色值 设置透明度

本文围绕Android颜色值展开,指出其遵循RGB/ARGB标准,颜色值含透明度。当获取颜色值需改变透明度时,手动位与运算易出错。为此介绍了SDK中ColorUtils.setAlphaComponent(color, alpha) API,可准确方便地设置颜色值透明度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 中的颜色值也遵循RGB/ARGB 标准,基本介绍网上资料很多。

我们可以对一个图片(Drawable类型) 或者 控件的背景, 设置背景颜色, 颜色值中包含透明度,例如 0xfb020202.

前面两位 fb (十六进制)即代表 透明度  ( 00表示完全透明, ff 表示完全不透明, 80 表是半透明 )。

 

现有一个需求:

有时我们获取了一个颜色值, 例如是半透明的颜色值 0x8020202, 我们想把它改成完全不透明 或者 完全透明。

简单的方法可以自己对这个颜色值 做 位与运算 ,但是这容易出错。

因此介绍SDK 中已有的API,可以准确又方便对一个颜色值进行透明度的设置。

 

1. ColorUtils.setAlphaComponent(color, alpha)

通过 graphics包里的 ColorUtils,  可以对任意一个color颜色值,设置透明度alpha( alpha必须在 [0,255] 之间)。

返回值即为新的color 值 (int 类型)

package androidx.core.graphics;

public final class ColorUtils {

    @ColorInt
    public static int setAlphaComponent(@ColorInt int color, @IntRange(from = 0L,to = 255L) int alpha) {
        if (alpha >= 0 && alpha <= 255) {
            return color & 16777215 | alpha << 24;
        } else {
            throw new IllegalArgumentException("alpha must be between 0 and 255.");
        }
    }

}

例如设置为 半透明, 

int newColorValue = ColorUtils.setAlphaComponent(colorValue, 128);

设置为完全不透明:

int newColorValue = ColorUtils.setAlphaComponent(colorValue, 255);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值