1、图片资源
•图片资源是Android应用中最简单的Drawable资源,只需要把png、jpg、gif等格式的图片放在/res/drawable-xxx目录下,Android SDK会自动加载该图片并在R资源类中生成索引。
•访问方法:
–R.drawable.file_name
–@drawable/file_name
•
注意:
Android
不允许图片资源的文件名中出现大
写字母,且不能以数字开头。
2、bitmap资源
•bitmap可以指定显示一个图片资源,并设置该图片的显示方式:比如平铺、拉伸及显示的位置。以下是可指定的属性。
–android:src:指向图片资源
–android:gravity:图片的显示的位置(只有在没有设置titleMode或者titleMode设置为disabled才有用)
–android:titleMode:显示方式
•disabled – 如果没有设置gravity则拉伸,否则根据 gravity设置的位置显示
•clamp – 固定位置
•repeat – 平铺
•mirror – 镜子式平铺
例如:首先在res下建立drawable目录在建立drawable_btn.xml文件设置图片为拉伸显示
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/logo"
android:gravity="center"
android:tileMode="disabled"
>
</bitmap>
使用该xml文件
android:background="@drawable/drawable_btn"
3、StateListDrawable资源
StateListDrawable用于组织多个Drawable资源,并且可以设置其中Drawable对象随目标组件状态的改变而自动切换。比如按钮未按下和按下时分别设置不同的背景图片。
例如:建立drawable_edittext_focus.xml文件档组建获得焦点时字体颜色为#f00失去焦点时为#00f
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#f00"></item>
<item android:state_focused="false" android:color="#f0f"></item>
</selector>
使用:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/drawable_edittext_focus" />
•state的所有状态:
state_active
|
是否处于激活状态
|
state_checkable
|
是否处于可勾选状态
|
state_checked
|
是否处于已勾选状态
|
state_enabled
|
是否处于可用状态
|
state_first
|
是否处于开始状态
|
state_focus
|
是否处于已得到焦点状态
|
state_last
|
是否处于结束状态
|
state_middle
|
是否处于中间状态
|
state_pressed
|
是否处于已被按下状态
|
state_selected
|
是否处于已被选中状态
|
state_window_focused
|
是否窗口已得到焦点状态
|
•叠加图片
–比如有三张图片共同组成图像
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<!-- 图片左上对齐 -->
<bitmap
android:gravity="left|top"
android:src="@drawable/title_button_group_left_normal" >
</bitmap>
</item>
<!-- 图片与上一图片的左距离 -->
<item android:left="104px">
<bitmap
android:gravity="left|top"
android:src="@drawable/title_button_group_middle_normal" >
</bitmap>
</item>
<item android:left="209px">
<bitmap
android:src="@drawable/title_button_group_right_normal" >
</bitmap>
</item>
</layer-list>
5、ShapeDrawable资源
•ShapeDrawable资源用于定义一个基本的几何图形(如矩形、圆形、线条等等),定义ShapeDrawable资源的根元素为<shape …/>,
有如下属性。–android:shape=[rectangle(矩形)|oval(椭圆)|line(线条)|ring(圆形)]
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- 背景填充色 -->
<solid android:color="#ff0" />
<!-- 内边距 -->
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
<!--
边框设定
width:边框大小
color:边框颜色
-->
<stroke
android:width="2dp"
android:color="#00f" />
<!--
设置圆角矩形
radius:四个圆角的大小。也可以单独设置
-->
<corners android:radius="10dp" />
<!--
设置背景渐变色
startColor:开始颜色
endColor:结束颜色
centerColor:中间颜色
-->
<gradient
android:endColor="#80ff00ff"
android:startColor="#ffff0000" />
</shape>
使用:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/drawable_edittext_border"
android:textColor="@drawable/drawable_edittext_focus" />
•
设置渐变色背景
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!--
设置背景渐变色
startColor:开始颜色
endColor:结束颜色
centerColor:中间颜色
-->
<gradient
android:centerColor="#efefef"
android:endColor="#111111"
android:startColor="#222221" />
</shape>
使用方法同上给组建添加背景颜色
6、ClipDrawable资源
•ClipDrawable可以从其他位图上截取一个片段显示。可指定如下属性。
–android:drawable:指定截取的源Drawable对象
–android:clipOrientation:指定截取的方向
–android:gravity:指定截取时的对齐方式。
在代码中可以通过setLevel方法来设置截取的区域大小。当level为0时,截取的图片为空;当level为10000时,截取整个图片。
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="horizontal"
android:drawable="@drawable/logo"
android:gravity=“center" >
</clip>
代码设置截取大小:
ImageView clipImg = (ImageView) findViewById(R.id.main_test_drawable_clip_img);
clipImg.getDrawable().setLevel(6000);
使用截取后的图片:
<ImageView
android:id="@+id/main_test_drawable_clip_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/drawable_clip_img" />
如果能灵活的吧这些资源利用起来,做出的界面一定会出乎意料的炫。