android 动态更新文本颜色的设置、转换

参考文章:https://www.jianshu.com/p/3c1fe10aed4f

介绍

  • Android中的颜色值通常遵循RGB/ARGB标准,使用时通常以“ # ”字符开头的8位16进制表示。
  • 其中ARGB 依次代表透明度(Alpha)、红色(Red)、绿色(Green)、蓝色(Blue),取值范围为0 ~ 255(即16进制的0x00 ~ 0xff)。 A 从0x00到0xff表示从透明到不透明,RGB 从0x00到0xff表示颜色从浅到深。
  • 当RGB全取最小值(0或0x000000)时颜色为黑色,全取最大值(255或0xffffff)时颜色为白色。

Java代码颜色设置

textView.setTextColor(Color.RED);
textView.setTextColor(0xffff0000);
textView.setTextColor(Color.argb(127, 255, 0, 255));
textView.setTextColor(Color.parseColor("#00CCFF"))
textView.setTextColor(getResources().getColor(R.color.colorPrimary));//已过时
textView.setTextColor(ContextCompat.getColor(this, R.color.colorPrimary));//替换方法

实战

项目中相应动态设置文本颜色,返回的json为:

"rgba(255,0,0,1)"

代码解析拼接

public class ColorUtil {

    public  static int rgb(String rgbStriing){
        int   rgbColor =Color.rgb(0,0,0);
        try {
            String colorString =   rgbStriing.replace("rgba(","").replace(")","");
            String[]  rgbs =  colorString.split(",");
            rgbColor =   Color.rgb(Integer.parseInt(rgbs[0]),Integer.parseInt(rgbs[1]),Integer.parseInt(rgbs[2]));
            return rgbColor;
        }catch (Exception e){
            e.printStackTrace();
        }
        return rgbColor;
    }
}


你可能感兴趣的:(android 动态更新文本颜色的设置、转换)