Android ColorDrawableDrawable

ColorDrawable 用于表示一种颜色,我们将 ColorDrawable 绘制到 Canvas(画布) 上的时候, 会使用一种固定的颜色来填充 Paint ,然后在画布上绘制出一片单色区域

ColorDrawable 的使用

  1. Java 中定义 ColorDrawable

    ColorDrawable drawable = new ColorDrawable(0xffff2200);  
    txtShow.setBackground(drawable);
    
  2. 在 XML 中定义 ColorDrawable

    <?xml version="1.0" encoding="utf-8"?>  
    <color  
        xmlns:android="http://schemas.android.com/apk/res/android"  
        android:color="#FF0000"/>
    
  3. res/values/color.xml 中定义,然后在 XML 文件中使用 @color/xxx 来引用

    建立一个 color.xml 文件

    <?xml version="1.0" encoding="utf-8"?>  
    <resources>  
        <color name="material_grey_100">#fff5f5f5</color>
        <color name="material_grey_300">#ffe0e0e0</color>
        <color name="material_grey_50">#fffafafa</color>
        <color name="material_grey_600">#ff757575</color>
        <color name="material_grey_800">#ff424242</color>
        <color name="material_grey_850">#ff303030</color>
        <color name="material_grey_900">#ff212121</color>
    </resources>
    

    然后如果是在 xml 文件中话我们可以通过 @color/xxx 获得对应的 color 值

    如果是在 Java 中

    int mycolor = getResources().getColor(R.color.mycolor);    
    btn.setBackgroundColor(mycolor);
    

注意

如果在 Java 中直接定义颜色值的话,要加上 0x,而且不能把透明度漏掉

int mycolor = 0xff123456;    
btn.setBackgroundColor(mycolor);

使用系统定义好的 color:

Android 预定义了以下几种颜色

BLACK(黑色)
BLUE(蓝色)
CYAN(青色)
GRAY(灰色)
GREEN(绿色)
RED(红色)
WRITE(白色)
YELLOW(黄色)

用法

btn.setBackgroundColor(Color.BLUE);

也可以获得系统颜色再设置

int getcolor = Resources.getSystem().getColor(android.R.color.holo_green_light);  
btn.setBackgroundColor(getcolor);

xml 中使用

android:background="@android:color/black"** 

使用静态方法 argb 来设置颜色

Android 使用一个 int 类型的数据表示颜色值,通常是十六进制,即 0x 开头

颜色值的定义是由 透明度alphaRGB(红绿蓝) 三原色来定义的,以 # 开始,后面依次为: 透明度-红-绿-蓝 ;比如:#RGB #ARGB #RRGGBB #AARRGGBB

每个要素都由一个字节(8 bit)来表示,所以取值范围为 0~255

在 xml 中设置颜色可以忽略透明度,但是如果是在 Java 代码中的话就需要明确指出透明度的值了,省略的话表示完全透明,这个时候 就没有效果

比如 0xFF0000 虽然表示红色,但是如果直接这样写,什么的没有,而应该这样写: 0xFFFF0000

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.