• 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 <!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
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="" android:src="@mipmap/shuqi" android:tilemode="repeat" xmlns:android="http://schemas.android.com/apk/res/android">
6 
7 </bitmap>

repeat的效果:

\

mirror:

\

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

 

2.ShapeDrawable

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

 1 <!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
 2 <shape 3="" android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
 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:color="#dcdcdc" android:width="2dp">
17     <solid android:color="#ffff9d77">
18 </solid></stroke></padding></gradient></shape>

效果:

\

 

3.layerDrawable

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

 

 <!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
 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>

 

\

 

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>

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>

效果如下:

\

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

 

6.TransitionDrawable

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

1 <!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
2 <transition xmlns:android="http://schemas.android.com/apk/res/android">
3     <item android:drawable="@mipmap/shuqi"></item>
4     <item android:drawable="@mipmap/shuqi2"></item>
5 </transition>
</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                 Transitio



 
分享到: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-26改变RadioButton的文字位置以及距离,radiobutton文字
  • 2017-05-26【原创】Android ExpandableListView使用,expandablelistview
  • 2017-05-26安卓中Paint类和Canvas类的方法汇总,安卓中canvas
  • 2017-05-26zoom动画,实现图片点击预览效果,zoom预览
  • 2017-05-26andriod ==和equals,andriodequals
  • 2017-05-26『原创』手把手教你搭建一个实用的油耗App(一),油耗app
  • 2017-05-26Android中实现APP文本内容的分享发送与接收方法简述,androidapp
  • 2017-05-26如何挂载ubi文件系统
  • 2017-05-26Android View体系(一)视图坐标系
  • 2017-05-26仿微信新消息提示音,消息

文章分类

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

最近更新的内容

    • 自定义图片轮播框架。也是作为依赖库使用的哦,自定义框架
    • Android面试准备 第一天 第2-4例
    • Listview详解,listview
    • Android GreenDAO3.0——entity建模,androidgreendao3.0
    • 7.5.1 WebView(网页视图)基本用法
    • 4.2.2 Service进阶
    • Android学习笔记(26):Toast提示信息框浅析
    • android开发学习——小细节注意,android开发细节
    • 静态库和动态库的生成和加载详解
    • Greenplum 由于备master节点故障导致gp无法启动处理

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

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