天天看点

Android应用程序资源——Drawable资源概述

Drawable资源概述

1,使用(drawable)资源

        Drawable有很多种,它们都表示一种图像的概念,但是它们又不全是图片。

       在Android的设计中,Drawable是一个抽象类,它是所有Drawable对象的基类。

Drawable的内部宽/高:

       getIntrinsicWidth和getIntrinsicheight可以获取到它们。

      并不是所有的Drawable都有内部宽/高,例如一张图片所形成的Drawable,它的内部宽/高就是图片的宽/高, 但是一个颜色所形成的Drawable是没有内部宽/高的概念的。Drawable的内部宽/高不等同于它的大小,一般来说Drawable是没有大小概念的,当用作View的背景时,Drawable会被拉伸至View的同等大小。

存放路径

      /res/drawable/ 该目录下存放各种位图文件(如*.png、*.9.png、*.jpg、*.gif)等,

除此之外可以编译成各种的Drawable独享的XML文件:

              BitmapDrawable

              NinePatchDrawable

              ShapeDrawable

              LayerDrawable

              StateListDrawable

              LevelListDrawable

              TransitionDrawable

              InsetDrawable

              ScaleDrawable

              ClipDrawable

              自定义Drawable

2,图片资源认识

图片资源介绍:

              图片是最简单的Drawable资源,只要把*.png、*.jpg、*.gif等格式的图片放入/res/drawable-xxx目录下,

              Android SDK就会在编译应用自动加载这些图片,并在R资源清单类中生成该资源的索引。

Android提供了几种不同的drawable文件夹:

 drawable-xxhdpi:里面存放超超高分辨率的图片

 drawable-xhdpi:里面存放超高分辨率的图片

 drawable-hdpi:里面存放高分辨率的图片,如WVGA(480X800),FWVGA(480X854)

 drawable-mdpi:里面存放中等分辨率的图片,如HVGA(320X480)

 drawable-ldpi:里面存放低分辨率图片,如QVGA(240X320)

像素密度范围

              mdpi 120dpi~160dpi

              hdpi 160dpi~240dpi

              xhdpi 240dpi~320dpi

              xxhdpi 320dpi~480dpi

              xxxhdpi 480dpi~640dpi

具体情况可以查看:屏幕适配

注意:

         Android 不允许图片资源的文件名中出现大写字母,切不能以数字开头,否则Android SDK无法为该图片在R类中生成资源索引。一旦生成资源索引,在java类中用这个来方法资源:           

           R.drawable.<file_name>

为了在程序中获得实际的Drawable对象:

              Resources提供了Drawable getDrawable(int id)方法,该方法即可根据Drawable资源在R清单类中的ID来获取 实际的Drawable对象。