Android Drawable资源详解:Bitmap, Nine-Patch, StateList与更多

需积分: 10 1 下载量 107 浏览量 更新于2024-09-28 收藏 310KB PDF 举报
"这篇文档主要介绍了Android中的Drawable资源,它是对图像的一种抽象,涵盖了BitmapFile、Nine-PatchFile、StateList、Color以及Shape等不同类型的Drawable。Drawable资源可以在Android应用程序中用于绘制和设置视图的背景等。" 在Android开发中,Drawable资源扮演着至关重要的角色。它们是Android系统用来表示和操作图像的一种方式,可以是静态的图片,也可以是根据状态变化的图像集合。以下是Drawable资源的详细说明: 1. **BitmapFile** - 这是最基础的图像类型,支持.png、.jpg和.gif格式。BitmapDrawable是与Bitmap文件关联的Drawable对象。Android会自动对放入`res/drawable`目录的Bitmap文件进行优化,如将真彩色PNG转化为8位PNG以节省内存。如果需要避免这种优化,可以将图片存放在`res/raw`目录。 2. **Nine-PatchFile** - Nine-Patch是一种特殊的PNG图片,它包含可拉伸和不变形的区域定义,用于适应不同尺寸的视图。NinePatchDrawable允许内容区域在水平和垂直方向上动态扩展,常用于按钮、背景等需要自适应大小的元素。 3. **StateList** - StateListDrawable是根据控件的状态显示不同图像的Drawable,例如,按钮在按下、默认、聚焦等不同状态下可以显示不同的图片。定义在XML文件中,它可以为不同状态引用多个Bitmap图像。 4. **Color** - 通过XML定义的颜色资源,可以指定纯色或具有圆角的矩形颜色,还可以包含渐变效果。PaintDrawable通常用于创建简单的颜色背景。 5. **Shape** - ShapeDrawable允许开发者创建自定义的几何形状,如矩形、圆形、线等,并可以设置填充颜色、描边宽度、渐变等属性。它在XML中定义,提供了高度的灵活性来设计视图的背景或其他图形元素。 6. **AnimationDrawable** - 虽然在本文档中没有详细介绍,AnimationDrawable是用来创建帧动画的,可以通过XML定义一系列的Drawable,按照指定的时间顺序播放,常用于实现动效。 在实际使用中,Drawable资源可以通过R类引用,如`R.drawable.filename`,或者在XML布局文件中直接引用,如`@drawable/filename`。例如,以下代码展示了如何在ImageView中设置BitmapDrawable作为背景: ```xml <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" /> ``` 这里,`myimage.png`是放置在`res/drawable`目录下的图片资源,`android:src`属性将其设置为ImageView的图像来源。 Drawable资源是Android开发中不可或缺的一部分,它提供了一种灵活的方式来管理和展示图像,包括静态图像、可拉伸图像、状态相关的图像以及自定义形状,极大地丰富了UI的表现力。