一、 Drawable资源:不只是"图片"那么简单
在Android开发中,Drawable资源绝对算得上是"门面担当"。但很多新手一听到"Drawable"就只想到普通图片,这可就大错特错了!实际上,Drawable是一个抽象概念,代表一切"可在屏幕上绘制的图形资源"。
想想看,为什么你的App在某些设备上图片模糊,在某些设备上内存占用过高?多半是因为没有真正理解Drawable的精髓。Android的Drawable家族成员众多,包括普通图像、XML图像、Nine-Patch、图层资源、状态资源等等。
为什么Drawable资源如此重要?
- 内存优化:合理的Drawable使用可以大幅降低内存占用
- 屏幕适配:一套资源适配多种屏幕密度
- 动态效果:无需代码就能实现各种视觉状态变化
- 性能提升:正确的图片加载方式让应用更流畅
二、 普通图像资源:从基础开始
2.1 支持的图像格式
Android主要支持三种图像格式:PNG(推荐)、JPG(可接受)和GIF(不鼓励)。
这里要特别提醒:虽然Android支持GIF格式,但由于移动设备性能的限制,Android SDK并不支持动画GIF。所以如果你想要展示动画效果,最好不要直接用GIF,而是使用Android的帧动画(AnimationDrawable)或者视频格式。
2.2 如何使用图像资源
在XML布局文件中引用图像资源非常简单:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/ball" />
在Java/Kotlin代码中使用:
// Java代码
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.ball);
// Kotlin代码
val drawable = resources.getDrawable(R.drawable.ball, null)
注意:在Android 5.0以上的版本中,getDrawable()方法已被弃用,可以使用getDrawable(int, Theme)方法来获取Drawable对象。
三、 特殊图片资源:解决特定问题
3.1 Nine-Patch图像:自适应拉伸的利器
有没有遇到过这种情况:一个按钮背景图随着文本内容长短变化,但拉伸后角角都变形了?这时候Nine-Patch图像就该登场了!
什么是Nine-Patch图像?
Nine-Patch图像是一种特殊的PNG格式,文件扩展名必须是**.9.png**,如cloud.9.png。它通过定义可拉伸区域和内容显示区域,来解决图像自适应拉伸的问题。
Nine-Patch图像的主要作用:
- 防止图像的某一部分被拉伸
- 确定将图像作为背景图的控件中的内容显示的位置<
Android Drawable资源全解析

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



