//---------------------------------------------------------------------------------------------------------------------------------  
/*--------------- normalDrawable begin ---------------*/
GradientDrawable normalDrawable = new GradientDrawable();
// 得到随机颜色
Random random = new Random();
int alpha = 255;
int green = random.nextInt(190) + 30; // 30-220
int red = random.nextInt(190) + 30;// 30-220
int blue = random.nextInt(190) + 30;// 30-220
int argb = Color.argb(alpha, red, green, blue);
// 设置填充颜色
normalDrawable.setColor(argb); // 设置圆角半径
normalDrawable.setCornerRadius(UIUtils.dip2Px(6));
/*--------------- normalDrawable end ---------------*/
//-----------------------------------------------------------------------------------------------------------------------------------------------
/*--------------- pressedDrawable begin ---------------*/
GradientDrawable pressedDrawable = new GradientDrawable();
pressedDrawable.setColor(Color.DKGRAY);
pressedDrawable.setCornerRadius(UIUtils.dip2Px(6));
/*--------------- pressedDrawable end ---------------*/
//-------------------------------------------------------------------------------------------------------------------------------------------
// 设置一个状态图片
StateListDrawable stateListDrawable = new StateListDrawable();
// @attr ref android.R.styleable#DrawableStates_state_pressed
stateListDrawable.addState(new int[] { android.R.attr.state_pressed }, pressedDrawable);
stateListDrawable.addState(new int[] {}, normalDrawable);

需求说明:这两个类GradientDrawable和StateListDrawable;

GradientDrawable:可以自定义颜色,圆角。

StateListDrawable:就是一个状态选择器。

介绍两个Android不常用的Drawable:GradientDrawable和 StateListDrawable的更多相关文章

  1. 介绍两款常用的“图表统计图"的插件

    一.相信朋友们在开发的过程中都会使用到“数据统计”的功能,图表的统计更为直观,在这里就介绍两款插件:fusionChart.DataVisualization. 1.fusionChart实际项目中用 ...

  2. Android开发常用工具类

    来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...

  3. Android ListView 常用技巧

    Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...

  4. Android样式的开发:drawable汇总篇

    Android有很多种drawable类型,除了前几篇详细讲解的shape.selector.layer-list,还有上一篇提到的color.bitmap.clip.scale.inset.tran ...

  5. 最全Android开发常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.Pack ...

  6. Android之常用开发框架

    1.Rajawali介绍:安卓的OpenGL ES 2.0/3.0 引擎.可以用于制作普通应用或者动态壁纸,当然也可以用于制作游戏.项目地址: https://github.com/Rajawali/ ...

  7. Android笔记---常用控件以及用法

    这篇文章主要记录下Android的常用控件以及使用的方法,Android 给我们提供了大量的UI控件,合理地使用这些控件就可以非常轻松地编写出相当不错的界面,这些是Android学习的基础,没有什么业 ...

  8. 【Android - 进阶】之Drawable简介

    Drawable是什么?Android给我们的解释是:“A general abstraction for 'something that can be drawn'.”,翻译过来就是:对于可以绘制的 ...

  9. Android ListView 常用技巧总结

    本文对 ListView 中的一些常用技巧做一个总结.附:虽然现在 RecyclerView 已逐渐取代 ListView,但实际情况是大部分项目中还在使用 ListView.当然,后续我会在我的博客 ...

随机推荐

  1. NSConditionLock

    一.NSConditionLock定义了一个可以指定条件的互斥锁,用于线程之间的互斥与同步. 这里的条件并不是bool表达式中的条件,而是一个特定的int值. 二.NSConditionLock的AP ...

  2. 一个简单的Servlet工具

    以前老师在项目中用过一个Sevlet的工具,就是在请求Servlet的时候带一个参数,该参数决定要执行Servlet中的方法, public class ServletUtils extends Ht ...

  3. vultr vps发布多用户管理功能

    中国用户购买海外vps,有一个麻烦之处是付款环节,可能你没有visa信用卡,vultr和digitalocean和linode这类vps不支持支付宝,给一些朋友带来不便.由此产生的vps代购行业,其实 ...

  4. 一个简单的servlet小程序

    servlet是不能单独运行的,他是运行在web服务器或应用服务器上的java程序,或者可以说是在servlet容器上运行的,我们经常使用到的tomcat就是一个servlet容器. 他是处理HTTP ...

  5. 【Machine Learning in Action --4】朴素贝叶斯电子邮件垃圾过滤

    摘要:这里用的是词袋模型,即一个词在文档中出现不止一次,每个单词可以出现多次. 1.准备数据:切分文本 前一节过滤网站恶意留言中词向量是给定的,下面介绍如何从文本文档中构建自己的词列表 先举例说明,在 ...

  6. jquery 监听回车提交

    //监听回车提交 $(document).keyup(function(event){ if(event.keyCode ==13){ if ($(".form-1").is(': ...

  7. hudson

    来源: hudson入门与实战 http://www.360doc.com/content/15/0304/22/12144668_452603921.shtml Hudson安装配置.部署应用及分析 ...

  8. usbmanger android 底下USB的工作模式

    Android USB开发麻烦还是比较多的. 第一种:host模式 这种模式比较不错,由Android设备提供电源,然后与外部设备通信.举个例子来说:电脑连接USB设备,都是这个模式,非常常见的模式. ...

  9. .net core 读取配置文件

    /// <summary> /// 读取配置信息 /// </summary> public class Zconfig { #region 读取配置信息 /// <su ...

  10. 《C++ Primer》之面向对象编程(二)

    构造函数和复制控制 每个派生类对象由派生类中定义的(非 static)成员加上一个或多个基类子对象构成,当我们构造.复制.赋值和撤销一个派生类对象时,也会构造.复制.赋值和撤销这些基类子对象. 构造函 ...