从零学Android(八)、Android资源类型之Drawable资源

Drawable资源代表着那些可以绘制在屏幕上,而且可以通过API方法getDrawable(int)获取到的图像资源,或者通过android:drawable属性或android:icon属性被其它XML资源引用的图像资源。Drawable资源有下面几种不同的类型:

【1】Bitmap File(图片资源)

位图文件。如后缀名为.png.jpg, or .gif。我们可以通过去BitmapDrawable创建。

【2】Nine-Patch File(.9图片资源)

.9图片拥有一个可伸缩的区域,允许基于图片内容去改变图片的大小。可以通过NinePatchDrawable类去创建。

【3】Layer List(drawable层次资源)

它可以管理一组Drawable资源。它们的绘制顺序就是在组中的出现顺序,最先出现的会最先绘制,最后出现的会最后绘制在屏幕的最上层。可以通过LayerDrawable类去创建。

【4】State List(状态列表资源)

它是一个根据不同状态对应不同Drawable资源的XML文件(比如说,一个按钮按下去和普通状态展示不同的drawable资源)。可以通过StateListDrawable类去创建。

【5】Level List(阶段列表资源)

它定义了Drawable资源,这个Drawable资源管理了许多的候选Drawable资源都通过android:maxLevel属性分配有一个一个整数。可以通过LevelListDrawable类去创建。

【6】Transition Drawable(过渡Drawable资源)

它是一种允许在两张Drawable资源间淡入淡出的Drawable XML资源。可以通过TransitionDrawable类去创建。

【7】Inset Drawable(嵌入Drawable资源)

它是一种可以通过指定一些内嵌边距将一个Drawable资源嵌入到另外一个Drawable中的资源。比如当一个View需要一个比它实际边界要小的背景资源时,这个嵌入资源非常有用。可以通过InsetDrawable类去创建。

【8】Clip Drawable(裁剪Drawable资源)

它允许你根据当前的Drawable资源层去裁剪另外一个Drawable资源。可以通过ClipDrawable类去创建。

【9】Scale Drawable(缩放Drawable资源)

它允许你根据当前的Drawable资源层去缩放另外一个Drawable资源。可以通过ScaleDrawable类去创建。

【10】Shape Drawable(形状Drawable资源)

它是一种几何图像的Drawable资源,包含有颜色和渐变。可以通过ShapeDrawable类去创建。

【11】AnimationDrawable(动画Drawable资源)

这个在从零学Android(七)、Android资源类型之动画资源中学习逐帧动画时有学习过,不再赘述。

特别注意颜色资源在XML文件中也能作为Drawable资源使用。比如,我们创建一个State List资源时,我们可以这么去指定它的android:drawable属性:android:drawable="@color/green"


下面分别来学习这些Drawable资源:

1. Bitmap File(图片资源)

Android支持三种位图资源,它们的后缀名分别为.png(最好使用这种格式的图片),.jpg(这种格式只能算可以接受),.gif(官方不鼓励使用GIF图)。当然,我们也可以直接去引用一个XML位图资源文件,用文件名作为它的资源ID,或者创建一个别名资源。

注意:在项目的构建过程中,我们的位图文件可能会被aapt工具(Android Asset Packaging Tool)进行无损压缩。比如说,一个不需要使用256色的true-color的png图片,可能会通过颜色调色板被转换成一个8位的png图片。这样,相同质量的图片资源只需要占用更少的内存。所以放置在这个目录下的图片二进制资源可能在项目的构建过程发生改变。如果你希望使用二进制流去读取图片资源,然后转换成Bitmap的话,你需要将你的图片资源放入到res/raw/这个目录下,因为这个目录下的资源不会被优化。


1.1 Bitmap文件

Bitmap文件就是指.png,.jpg,.gif的文件。当我们把这类图片资源放入到res/drawable/目录下时,Android都是通过Drawable去创建它们。

文件位置:res/drawable/filename.png (.png.jpg, or .gif)

文件名将作为它们的资源ID。

编译后的数据类型为:BitmapDrawable

资源的引用方式:

在Java文件中:R.drawable.filename

在XML文件中:@[package:]drawable/filename


1.2 Bitmap XML文件

Bitmap XML是一种在XML资源文件中指向一个Bitmap文件的资源。它的作用是给原始的Bitmap文件一个别名,而且XML可以在这个Bitmap文件的基础之上指定一些如抖动,平铺的其它属性。

文件位置:res/drawable/filename.xml

文件名将作为它们的资源ID。

编译后的数据类型为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值