Drawable主要用于ImageView的展示和View的背景。
主要用到的Drawable有下面几类:
- BitmapDrawable:最简单的Drawable,表示一张图片。
- ShapeDrawable:对应的xml的标签是
- LayerDrawable:对应xml的标签是
- StateListDrawable:对应标签是
- LevelListDrawable:对应标签是,它表示一个Drawable集合,集合中每一个Drawable都有一个等级(level)概念。根据不同的等级,LevelListDrawable会切换为对应的Drawable,语法如下:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/drawable_resource"
android:maxLevel="integer"
android:minLevel="integer" />
</level-list>
- TransitionDrawable:对应标签,他用于两个Drawable之间的淡入淡出效果。语法如下:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/drawable1"/>
<item android:drawable="@drawable/drawable2"/>
</transition>
接着将上面的语法设置为View的背景,也可以在ImageView中直接作为Drawable来使用。最后通过她的startTransition(1000)和reverseTransition()方法来实现谈入谈出的效果已经他的逆流程。
- InsertDrawable:对应标签。他可以将其他Drawable内嵌到自己当中,并可以在四周留出一定的间距。语法如下:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="15dp"
android:insetLeft="15dp"
android:insetRight="15dp"
android:insetTop="15dp">
<shape android:shape="rectangle">
<solid android:color="#ff0000"/>
</shape>
</inset>
- ScaleDrawable:对应标签。他可以根据自己的等级(level)将指定的Drawable缩放到一定的比例。语法在 android开发艺术 258页。
- ClipDrawable:对应标签。它可以根据自己的等级(level)来裁剪另一个Drawable,裁剪的方向可以通过android:clipOrientation和android:gravity这两个属性来共通控制。语法在android开发艺术260页。