首页 > 代码库 > Android XML Drawable
Android XML Drawable
一、简介
Android把任何可绘制在屏幕上的图形图像都称为drawable。drawable是一种抽象的图形,一个继承了Drawable类的子类,或者是一张位图图像。
二、示例
1. 下面通过一些例子感受一下,利用ShapeDrawable创建彩色图形,既然XML Drewable与特定的像素密度无关,因此无需考虑特定像素密度的目录。Drawable的XML文件默认放于res/drawable目录下,利用Drawable和Shape创建一个圆角按钮。创建button_shape_normal.xml文件。
1 <?xml version="1.0" encoding="utf-8"?> 2 <shape 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:shape="rectangle"> 5 6 <corners android:radius="10dp" /> 7 <gradient 8 android:angle="90" 9 android:endColor="#cccccc"10 android:startColor="#acacac" />11 12 </shape>
在style.xml中,修改如下:
1 <style name="Remote_control_btn_style">2 <item name="android:layout_width">0dp</item>3 <item name="android:layout_height">match_parent</item>4 <item name="android:background">@drawable/button_shape_normal</item>5 </style>
这样一个圆角按钮就完成了。
2. 下面完成一个按钮在默认状态下的样式,及在点击按钮后的变化样式,再创建一个按钮点击后的Drewable文件button_shape_pressed.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <shape 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:shape="rectangle"> 5 6 <corners android:radius="10dp" /> 7 8 <gradient 9 android:angle="270"10 android:endColor="#cccccc"11 android:startColor="#acacac" />12 13 </shape>
创建交互式的按钮shape(button_shape.xml):
1 <?xml version="1.0" encoding="utf-8"?> 2 <selector 3 xmlns:android="http://schemas.android.com/apk/res/android"> 4 5 <item android:drawable="@drawable/button_shape_pressed" 6 android:state_pressed="true" /> 7 <item android:drawable="@drawable/button_shape_normal" 8 android:state_pressed="false" /> 9 10 </selector>
再次修改样式文件style.xml,如下所示:
1 <style name="Remote_control_btn_style">2 <item name="android:layout_width">0dp</item>3 <item name="android:layout_height">match_parent</item>4 <item name="android:background">@drawable/button_shape</item>5 </style>
这样,一个通过xml绘制的按钮就完成了。
三、总结
使用两张图片做了个selector (tab_item_home.xml):
1 <?xml version="1.0" encoding="utf-8"?>2 <selector3 xmlns:android="http://schemas.android.com/apk/res/android">4 <item android:drawable="@drawable/tab_ic_norm_home" />5 <item android:state_pressed="true" android:drawable="@drawable/tab_ic_sel_home" />6 </selector>
为ImageView的src或者background设置样式(itemView.xml),
1 <ImageView2 android:id="@+id/tab_item_icon"3 android:layout_width="wrap_content"4 android:layout_height="wrap_content"5 android:layout_margin="3dp"6 android:src="@drawable/tab_item_home"/>
在运行后,点击总是没有效果,那么,问题出在哪里了呢?
在做出如下修改,点击效果就恢复正常了,
1 <?xml version="1.0" encoding="utf-8"?>2 <selector3 xmlns:android="http://schemas.android.com/apk/res/android">4 <item android:state_pressed="true" android:drawable="@drawable/tab_ic_sel_home" />5 <item android:state_selected="true" android:drawable="@drawable/tab_ic_sel_home"/>6 <item android:drawable="@drawable/tab_ic_norm_home" />7 </selector>
PS: 设置按钮selected状态,在代码中可以动态设置被选中后的持续效果。
总结:default(默认)/不点击的图片应该放在最下边,才会有点击效果,不然,只会显示default图片。
四、核心图像资源子类
- BitmapDrawable对象:用于创建、平铺、拉伸以及对齐位图。
- ColorDrawable对象:用于用颜色填充指定的其它各类对象。
- GradientDrawable对象:用于创建并绘制自定义渐变。
- AnimationDrawable对象:用于创建基于帧的动画。
- TransitionDrawable对象:用于创建交叉淡入淡出过渡。
- NinePatchDrawable对象:用于通过定义可拉伸区域来创建可缩放位图。
Android XML Drawable
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。