• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android Drawable的9种子类 介绍

Android Drawable的9种子类 介绍

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android drawable,android drawable类,android drawable xml,android drawable画圆,android drawable使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android Drawable的9种子类 介绍


Drawable 在android里面 就是代表着图像,注意是图像 而不是图片。 图片是图像的子集。图像除了可以包含图片以外 还可以包含颜色。

换句话说Drawble就是canvas 可以绘制的 一种概念。 android 系统自带了很多种drawable。我们最好对自带的drawable 有一种比较熟悉的了解,

这样对我们apk开发很有好处,因为drawable使用 非常简单 基本上就是xml编写 即可。比你自己自定义view的成本要低的多。

而且非图片类型的drawable 占用控件也小,有助于我们减少apk的体积。

 

1.BitmapDrawable

这个用的人很多,不多做介绍了,唯一要注意的就是 下面这个参数 总共3种,3种参数分别对应哪些效果 要搞清楚。1 

2 <!--{cke_protected}{C}%3C!%2D%2Dandroid%3AtileMode%203%E7%A7%8D%E5%8F%82%E6%95%B0%20repeat%20clamp%E5%92%8Cmirror%20%E7%9A%84%E5%8C%BA%E5%88%AB%E8%A6%81%E6%90%9E%E6%B8%85%E6%A5%9A%2D%2D%3E-->
3 <bitmap 4="" 5="" xmlns:android="http://schemas.android.com/apk/res/android" android:src="@mipmap/shuqi" android:tilemode="repeat">
6 
7 </bitmap>
</div> </div>

repeat的效果:

\

mirror:

\

clamp的效果就不放了,因为这种效果 我自己也没实际用过,觉得挺2的。。 有兴趣的可以自己玩一下

2.ShapeDrawable

这个熟悉的人也应该很多 我们通常用来做editext 背景图时的那些 圆角啊  尖角之类的。可以省去ui不少功夫,程序员自己就能搞定了 1 

 2 <shape 3="" xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
 4     <corners android:radius="10dp"></corners>
 5     <gradient 6="" 7="" 8="" android:angle="45" android:endcolor="#FFFF0000" android:startcolor="#FFFF0000">
 9     <padding 10="" 11="" 12="" 13="" android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp">
14     <stroke 15="" 16="" android:width="2dp" android:color="#dcdcdc">
17     <solid android:color="#ffff9d77">
18 </solid></stroke></padding></gradient></shape>
</div> </div>

效果:

\

 

3.layerDrawable

这个用的人就不多了,实际上就是 后面的item 会覆盖掉前面的item 能做出那种层次化的显示效果。比如微信的输入框 背景就是这么做的。

 2 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 3     <item>
 4         <shape android:shape="rectangle">
 5             <solid android:color="#0ac39e"></solid>
 6         </shape>
 7     </item>
 8 
 9     <item android:bottom="6dp">
10         <shape android:shape="rectangle">
11             <solid android:color="#ffffff"></solid>
12         </shape>
13     </item>
14 
15     <item 16="" 17="" 18="" android:bottom="1dp" android:left="1dp" android:right="1dp">
19         <shape android:shape="rectangle">
20             <solid android:color="#ffffff"></solid>
21         </shape>
22     </item>
23 
24 
25 </layer-list>
</div> View Code</div>

\

 

4.StateListDrawable

这个例子就不给了,我们天天都在用的 selector 就是他。反应view 状态变化的。

 

5.LeverListDrawable
这个就是可以通过简单的java代码setImageLevel以后 就可以自动的切换图片。android的电量 变化 就是用这个做的,

我写一个简单的例子 大家可以感受一下。假设我们的需求是每隔500ms 切换一次图片背景。

 1 <!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
 2 <level-list xmlns:android="http://schemas.android.com/apk/res/android">
 3 
 4     <item 5="" 6="" android:drawable="@drawable/ic_accessible_black_18dp" android:maxlevel="0"></item>
 7     <item 8="" 9="" android:drawable="@drawable/ic_account_circle_black_18dp" android:maxlevel="1"></item>
10     <item 11="" 12="" android:drawable="@drawable/ic_account_balance_wallet_black_18dp" android:maxlevel="2"></item>
13     <item 14="" 15="" android:drawable="@drawable/ic_aspect_ratio_black_18dp" android:maxlevel="3"></item>
16     <item 17="" 18="" android:drawable="@drawable/ic_book_black_18dp" android:maxlevel="4"></item>
19 
20 </level-list>
</div> View Code</div>

java代码:
1 iv = (ImageView) findViewById(R.id.iv);

 2         iv.setOnClickListener(new View.OnClickListener() {
 3 
 4             @Override
 5             public void onClick(View v) {
 6                 new Thread() {
 7 
 8                     @Override
 9                     public void run() {
10                         for (int i = 0; i < 5; i++) {
11                             final int ii = i;
12                             try {
13                                 sleep(500);
14                             } catch (InterruptedException e) {
15                                 e.printStackTrace();
16                             }
17 
18                             runOnUiThread(new Runnable() {
19                                 @Override
20                                 public void run() {
21                                     iv.setImageLevel(ii);
22                                 }
23                             });
24 
25                             if (i == 4) {
26                                 i = -1;
27                             }
28                         }
29                     }
30                 }.start();
31             }
32         });
</div> </div>

效果如下:

\

用这个drawable就可以省去 我们在java代码里 写那么多set。。。多方便。

6.TransitionDrawable

这个就特别赞了,就是一个渐入渐出的效果。非常方便。你要是还在set alpha什么的那就弱爆了。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 8.1.1 Android中的13种Drawable小结 Part 1
  • 8.1.2 Android中的13种Drawable小结 Part 2
  • 8.1.3 Android中的13种Drawable小结 Part 3
  • Android--字符串和Drawable之间互相转化,android--drawable
  • drawable下的shape,drawableshape
  • Drawable资源的初步使用
  • Android入门——Drawable与对应的资源xml的应用
  • andriod 获得drawable下所有图片,
  • Android Drawable的9种子类 介绍
  • Android Drawable的9种子类 介绍

相关文章

  • 2017-05-26GsonFormat插件从配置到使用,gsonformat插件配置
  • 2017-05-26利用SQL实现简单的分布式锁
  • 2017-05-26统计nginx日志中各服务(目录)http总请求数、成功数、失败数的shell
  • 2017-05-26[android] 手机卫士手机定位的原理,android卫士
  • 2017-05-26Linux内核系列—7.操作系统开发之中断和异常,linux内核
  • 2017-05-26json反序列化把空字符串转为null
  • 2017-05-26Android热补丁动态修复技术(二):实战!CLASS_ISPREVERIFIED问题!
  • 2017-05-26Android中BroadcastReceiver的两种注册方式(静态和动态)详解,broadcastreceiver
  • 2017-05-26Android中Handler使用浅析,androidhandler
  • 2017-05-26ARM汇编中LDR伪指令和LDR指令

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 【Android】常见问题解答,android
    • [Android]Android布局优化之&lt;include /&gt;,androidinclude
    • Android中访问sdcard路径的几种方式,androidsdcard
    • Android 手机卫士--md5加密过程,android--md5
    • Android触摸事件分发机制完全解析《一》
    • Android实用工具类-GrallyAndPhotoUtils图片处理工具
    • android开发学习——小细节注意,android开发细节
    • did not call through to super.onCreate(),didsuper.oncreate
    • 充值,充值平台
    • Android之万能播放器解码框架Vitamio的介绍及使用,androidvitamio

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有