1.普通图像资源
Android支持图像格式 png jpg
布局文件中可以使用如下格式:
<ImageView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:src="@android:drawable/alert_light_frame"/>
使用图像资源的Java代码:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.icon);
2.XML图像资源
XML图像资源就是在XML文件中指定drawable目录中的图像资源,通过<bitmap> 标签定义
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@android:drawable/ic_dialog_alert"
android:tileMode="repeat">
</bitmap>
3.Nine-Patch图像资源
Nine-Patch图像资源与
普通图像资源类似, 只是
Nine-Patch图像资源文件必须以 9.png作为文件扩展名, 也可以在
XML图像
中建立
Nine-Patch图像资源
eg: abc.9.png face.9.png
<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_launcher"
android:dither="false"
android:autoMirrored="false">
</nine-patch>
4.图层(Layer)资源
图层资源有些类似于<FrameLayout>, 但是
图层资源中的每一层只能包含图像。定义
图层(Layer)资源必须使用<layer-list>作为根节点,
<layer-list>标签中可以包含多个<item>标签,每一个<item>表示一个图像,最后一个<item>标签会显示在最顶层。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<bitmap android:src="@drawable/ic_launcher" android:gravity="center"/>
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/ic_launcher" android:gravity="center"/>
</item>
<item android:right="10dp" android:bottom="10dp">
<bitmap android:src="@drawable/ic_launcher" android:gravity="center"/>
</item>
</layer-list>
5.图像状态(State)资源
图像状态(State)资源大多都用在Button时。当点击按钮的时候,会有点击炫酷效果。
图像状态(State)资源必须以<selector>标签作为根节点。标签中包含了若干个<item>标签
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/ic_launcher"></item>
<item android:state_focused="true" android:drawable="@drawable/ic_launcher"></item>
<item android:drawable="@drawable/ic_launcher"></item>
</selector>
6.图像级别(Level)资源
在图像资源文件中可以定义多个图像级别,每个图像级别是一个整数区间,可以通过 ImageView.setImageLevel 或 Drawable.setLevel方法切换不同状态的图像
XML中将<level-list>标签作为根节点
<?
xml version="1.0" encoding="utf-8"
?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item android:drawable
=
"@drawable/lamp_off" android:minLevel="6" android:maxLevel="10"></item>
<item android:drawable
=
"@drawable/lamp_on" android:minLevel="12" android:maxLevel="20"></item>
</level-list>
7.淡入淡出(Cross-fade)资源
淡入淡出资源,做出更酷更炫的效果 跟标签<transition>
<?
xml version="1.0" encoding="utf-8"
?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item android:drawable
=
"@drawable/lamp_off"> </item>
<item android:drawable
=
"@drawable/lamp_on" ></item>
</
transition
>
从第一个图像切换到第二个图像要使用TransitionDrawable.startTransition()
从第一个图像切换到第二个图像要使用TransitionDrawable.reverseTransition()
8.嵌入(Inset)图像资源
显示的图像 要求 小于 装载图像的视图,可以考虑使用嵌入图像资源。跟标签<inset>标签
<?xml version="1.0" encoding="utf-8"?>
<
inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_launcher"
android:insetLeft="10dp"
android:insetTop="10dp"
android:insetRight="10dp"
android:insetBottom="10dp">
</inset>
9.剪切(Clip) 图像资源
使用
剪切(Clip) 图像资源可以只显示一部分图像, 这种资源经常用于进度条的制作(准备两个png图像,background.png progress.png)
剪切(Clip) 图像资源的跟标签<clip>
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_launcher"
android:clipOrientation="horizontal"//截取的方向
android:gravity="left">
</clip>
10.比例(Scale)图像资源
比例(Scale)图像资源可以将图像放大或缩小 跟标签<scale>
下面的代码实现按原图的80%显示
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_launcher"
android:scaleWidth="80%"//宽度方向缩放的比例
android:scaleHeight="80%"
//高度方向缩放的比例
android:scaleGravity="center_vertical|center_horizontal"//图像显示的位置
android:useIntrinsicSizeAsMinimum="true">
</scale>
11.外形(Shape)资源
通过
外形(Shape)资源,可以为控件加上渐变背景色,可以使控件的4个角变成圆形,以及设置控件内容到控件边界的距离等。
跟标签<shape> <shape>标签的 anroid: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">
<!-- 定义渐变色(从左下角到右上角绘制渐变色) -->
<gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/>
<!-- 定义控件内容到边界的距离 -->
<padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp"/>
<!-- 定义边框线(边框线宽度是2, 颜色为白色) -->
<stroke android:width="2dp" android:color="#FFF"/>
<!-- 定义圆角(圆角半径是8) -->
<corners android:radius="8dp"/>
</shape>