今天,简单讲讲android里如何使用ColorDrawable。

这个其实很简单,只是之前一直没有注意,所以这里记录一下。

Drawable资源是Android应用中使用最广泛的资源,它不仅可以使用各种格式的图片资源,也可以使用多种xml文件资源。当然直接使用图片资源没什么好说的,我们主要是要研究下Drawable的子类。Android把可绘制的对象抽象成Drawable,并且提供了draw方法,可以在需要的时候直接绘制到画布上,我们看下官方的API

1、有点多,我们就慢慢说吧,先从最简单的一个说起——ColorDrawab,当他被绘制到画布上时会使用一种固定的颜色填充Paint,在画布上绘制出一块单色区域

  • 在xml文件使用color作为根节点来创建,如下定义:
<?xml version="1.0" encoding="utf-8"?>
<color
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#ff0000" /> 
  • 使用java代码则是:
ColorDrawable  colorDrawable = new ColorDrawable(0xffff0000);
有一点要注意:在代码中一定要指出透明度,如果省略了就代表完全透明了
  • 当然上面这些用法,其实用得不多,更多的时候我们是在res/values目录下创建一个color.xml 文件,然后把要用到的颜色值写到里面,需要的时候通过@color获得相应的值,比如:
<?xml version="1.0" encoding="utf-8"?>  
<resources>  
    <color name="red">#ffff0000</color>
    <color name="green">#ff00ff00</color>
    <color name="blue">#ff0000ff</color>
</resources>

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

int mycolor = getResources().getColor(R.color.green); imageview.setBackgroundColor(mycolor);
  • 此外系统也定义了很多颜色供我们使用,可以直接调用
imageview.setBackgroundColor(Color.BLUE);
当然,也可以获得系统颜色再设置
int color= getResources().getColor(android.R.color.holo_blue_light);
imageview.setBackgroundColor(color);
  • 利用静态方法argb来设置颜色,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));

下面简单举个例子:

2.1:在xml中定义

//在drawable文件夹下创建color
<?xml version="1.0" encoding="utf-8"?>
<color xmlns:android="http://schemas.android.com/apk/res/android"android:color="@color/colorAccent" />
//在布局文件中引用
<Viewandroid:layout_width="match_parent"android:layout_height="300px"android:background="@drawable/bg_color_drawable"/>
2.2:在Java代码中创建
View v = findViewById(R.id.v);
ColorDrawable colorDrawable = new ColorDrawable(
getResources().getColor(R.color.colorPrimary));
v.setBackgroundDrawable(colorDrawable);

android ColorDrawable的使用就讲完了。

就这么简单。



android ColorDrawable的使用相关推荐

  1. android textview获取背景颜色,android – 从textview获取背景颜色而不使用ColorDrawable(API 11)...

    试试这个- public static int getBackgroundColor(TextView textView) { ColorDrawable drawable = (ColorDrawa ...

  2. android - Drawable - ColorDrawable 学习笔记

    ColorDrawable 使用比较简单,就是一个使用单色填写整个画面的 Drawable 对象.使用起来很简单,在 XML 中定义: <resources> <drawable n ...

  3. Android ListView (多个adapter 说明)

    最近维护项目,项目里面使用的都是ListView 这里也对ListView 回顾一下 以下 demo 地址 ListView 在Android 里面用来实现列表的, 在xml 中创建ListView ...

  4. android 瀑布流的实现(用recyclerview的实现的)

    先看下效果图 代码的整体布局: 首先要做的就是导入v7包,这个v7的位置就在自己的sdk目录下,具体位置 我的博客说过了,这里就不再说了, 下面就是布局代码 main_activity <Rel ...

  5. Android 自定义圆形图片 CircleImageView

    1.效果预览 1.1.布局中写自定义圆形图片的路径即可 1.2.然后看一看图片效果 1.3.原图是这样的 @mipmap/ic_launcher 2.使用过程 2.1.CircleImageView源 ...

  6. android平台 arcgisr_ArcGIS Runtime For Android 开发 (7)

    第七课 图层管理 在前边的课程中,我们学习了如何加载图层,符号化图层,那么如果一个项目里边包含了很多的图层,但又需要进行查看特定的图层,怎么办?是的,我们需要对加载的图层进行管理. 那么如何来实现图层 ...

  7. android窗口退出动画,如何在Android中为弹出窗口制作动画

    PopupWindow自定义布局更方便,并且显示位置自由,没有任何限制.使用下面的代码并享受动画.在此动画中,使用底部滑入和滑出,但是您只能更改滑入/滑出动画,并根据您的动画对应用程序中的任何位置进行 ...

  8. android设置控件的坐标,Android中使PopupWindow显示在指定控件的上下左右!

    **1.View中的方法getLocationOnScreen(int[] location):获取该控件在屏幕中的绝对坐标并将坐标保存在数组中:如下图所示,A为屏幕的原点,R,C点即为view的绝对 ...

  9. android实现底部弹出菜单,Android实现底部缓慢弹出菜单

    项目要求要做一个从底部缓慢弹出一个Button Menu 开始编码: MyselfFragment package io.dcloud.H5B79C397.fragment; import andro ...

最新文章

  1. SAP 中国本地化内容汇总
  2. ASP.NET Core真实管道详解[1]
  3. AI时代的交换机什么样?华为CloudEngine 16800告诉你!
  4. yshon对讲机如何调频率_窄带宽、窄脉宽、高重复频率,主动调Q光纤激光器是如何实现的?...
  5. java设计模式案例详解:观察者模式
  6. LexYacc 编译原理课设
  7. C++命名空间中类声明、成员函数声明和函数模板
  8. 云服务器部署论坛系统discuz,腾讯云服务器利用镜像搭建Discuz!论坛完整教程
  9. 淘宝数据分析实战篇(附源码)
  10. 培训班出身的程序员为什么遭人嫌弃
  11. 全部就业!最高薪资12.5K,黑马这两个学科好牛!
  12. 世界上最好用的纯前端模板【没有之一】,AceTemplate高调亮相。
  13. 数学速算法_简单易学的速算法,贴墙上背,孩子次次数学100分!
  14. EXT.JS 学习笔记
  15. JavaScript实现树结构(一)
  16. Python3寻找相同图片
  17. MySQL数据库范围、模糊、时间范围(时间段)查询语句
  18. 关于Jason封装数据使其在前端展示的简单操作
  19. xsl:apply-templates和xsl:call-template的区别
  20. 百度网盘青春版:我就糊弄一下

热门文章

  1. 「日常训练」 Mike and Fun (CFR305D2B)
  2. OpenCV中Mat的属性
  3. 在 Win7 下运行 TC 2.0 / TC3.0 / BC 3.1 / QB 4.5 等 DOS 开发工具
  4. 【uoj#139】[UER #4]被删除的黑白树 贪心
  5. 关于解决DevExpress用DevExpress patch工具破解后经常弹出试用框的问题
  6. 我的第一份vim程序
  7. 咏南中间件集群解决方案
  8. Linux上安装JDK+Tomcat
  9. winform下的未捕捉的异常处理
  10. 你知道JVM内存的那些事吗?