Android原生开发笔记 图形Drawable

java yekong

Drawable 类型表达了各种各样的图形,包括图片、色块、画板、背景等。
包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下。
各视图的background属性、ImageView 和ImageButton的src属性、TextView和Button四个方向的drawable***系列属性都可以引用图形文件。

Android把所有能够显示的图形都抽象为Drawable类(可绘制的)。这里的图形不止是图片,还包括色块、画板、背景等。
包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下。例如:

·drawable—ldpi里面存放低分辨率的图片(如240x320),现在基本没有这样的智能手机了。
·drawable—mdpi里面存放中等分辨率的图片(如320x480),这样的智能手机已经很少了。
·drawable—hdpi里面存放高分辨率的图片(如480x800),一般对应4英寸~4.5英寸的手机(但不绝对,同尺寸的手机有可能分辨率不同,手机分辨率就高不就低,因为分辨率低了屏幕会有模糊的感觉)。
·drawable—xhdpi里面存放加高分辨率的图片(如720x1280),一般对应5英寸~5.5英寸的手机。
·drawable—xxhdpi里面存放超高分辨率的图片(如1080x1920),一般对应6英寸~6.5英寸的手机。
·drawable—xxxhdpi里面存放超超高分辨率的图片(如1440x2560),一般对应7英寸以上的平板电脑。
基本上,分辨率每加大一级,宽度和高度就要增加二分之一或三分之一像素。如果各目录存在同名图片,Android就会根据手机的分辨率分别适配对应文件夹里的图片。在开发App时,为了兼容不同的手机屏幕,在各目录存放不同分辨率的图片,才能达到最合适的显示效果。例如,在drawable—hdpi放了一张背景图片bg.png(分辨率为480x800),其他目录没放,使用分辨率为480x800的手机查看该App界面没有问题,但是使用分辨率为720x1280的手机查看该App会发现背景图片有点模糊,原因是Android为了让bg.png适配高分辨率的屏幕,强行把bg.png拉伸到了720x1280,拉伸的后果是图片变模糊了。
在XML布局文件中引用图形文件可使用“@drawable/不含扩展名的文件名称”这种形式,如各视图的background属性、ImageView和ImageButton的src属性、TextView和Button四个方向的drawable***系列属性都可以引用图形文件。

教程地址

感恩老师的教程:教程地址

喜欢