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

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"/>

其实用得不多,更多的时候我们是在res/values目录下创建一个color.xml 文件,然后把要用到的颜色值写到里面,需要的时候通过@color获得相应的值,比如:

3).建立一个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);

4).使用系统定义好的color:

比如: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"

Android使用一个int类型的数据表示颜色值,通常是十六进制,即0x开头, 颜色值的定义是由透明度alpha和RGB(红绿蓝)三原色来定义的,以"#"开始,后面依次为:
透明度-红-绿-蓝;eg:#RGB #ARGB #RRGGBB #AARRGGBB
每个要素都由一个字节(8 bit)来表示,所以取值范围为0~255,在xml中设置颜色可以忽略透明度, 但是如果你是在Java代码中的话就需要明确指出透明度的值了,省略的话表示完全透明,这个时候 就没有效果了哦~比如:0xFF0000虽然表示红色,
但是如果直接这样写,什么的没有,而应该这样写: 0xFFFF0000,记Java代码设置颜色值,需要在前面添加上透明度~ 示例:(参数依次为:透明度,红色值,绿色值,蓝色值) txtShow.setBackgroundColor(Color.argb(0xff, 0x00, 0x00, 0x00));

最新文章

  1. 巧用location.hash保存页面状态
  2. mysql-5.7.14 源码安装笔记
  3. SQL Server安全(4/11):许可(Permissions)
  4. JS写的多级联select,如何取值
  5. vim 标准环境的配置
  6. 动态SQL基础
  7. POJ 1743 Musical Theme 后缀数组 最长重复不相交子串
  8. leetcode6 Reverse Words in a String 单词取反
  9. memcached学习——大纲简介 &amp;&amp; 安装(基于centos6.5)、启动、关闭memcached(一)
  10. &lt;学习&gt;.NET的反射基础
  11. 微信小程序实现滚动加载更多
  12. Flask入门之Pycharm写Hello Word
  13. C# web IIS服务器 DateTime 带中文解决
  14. MySql 在cmd下的学习笔记 —— 有关游标的操作(cursor)
  15. Wannafly Winter Camp 2019.Day 8 div1 E.Souls-like Game(线段树 矩阵快速幂)
  16. FreeBsd网络性能优化方案sysctl
  17. RHCE就该这么搞01
  18. QT的setwindowflags的属性总结
  19. Coins in a Line I &amp; II
  20. FastJson/spring boot: json输出方法二

热门文章

  1. C#面向对象 什么是面向对象
  2. HCIP DAY2
  3. HTML块级元素与行内元素的区别
  4. 切换composer国内镜像 Laravel China停用,切换阿里云composer全量镜像
  5. Centos7下安装Elasticsearch 5.6.6
  6. 队列(queue)和堆栈(stack)的学习
  7. BZOJ 3716 [PA2014]Muzeum 贪心SET最大闭合子图
  8. 二、vue基础--计算属性和监听器
  9. intelij idea 常用插件下载
  10. jface viewer 全选