Android drawable文件夹的使用

开学到现在一直都在学着去搞明白一个简单的游戏。写完代码之后,发现主界面显示的某些图片比正常的大了许多。本来以为是代码写错了,反反复复,来来回回的检查代码,真心没有错误。。。崩溃了!!!后来就尝试着把图片从drawable-mdpi中移动到了hdpi文件夹下,在运行程序的时候,竟然好了!!MyGod,越是简单的东西就越容易出错。也只能怪自己学的不扎实不透彻了。在网上找到一些解释:android为开发者提供了两种解决适配问题的办法,第一种方式是使用dip的单位(dip: device independent pixels(设备独立像素).不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素);另一种是使用不同的drawable文件夹,如下图:

-hdpi 近似于240dpi的高级显示密度的屏幕-mdpi 近似于160dpi的中级显示密度的屏幕-ldpi 近似于120dpi的低级显示密度的屏幕-xhdpi 近似于320dpi的超高級顯示密度的屏幕图片缩放比列为 3 :4:6:8 ldpi,mdpi,hdip,xhdipAndroid系統会手机屏幕的大小及屏幕尺寸去选择不同文件夹下的图片资源,以此来实现在不同大小屏幕分辨率下适配的问题。比如在一个低分辨率的手机上,Android就会选择ldpi文件夹下的图片,但是如果没有在ldip的文件夹下找到相关的资源文件,Android系统会首先从hdpi文件夹中选择文件,然后对图片资源进行缩放处理,显示在屏幕上;如果hdpi文件夹下也没有的话,会在默认的drawable文件夹中寻找。因此图片放错文件夹的话,就会显示大小不同。如图正常显示的图片:

放大后的图片:

出现第二个图的原因是将hdpi下的图片放到了默认的文件夹下。本身是同一张图片,由于系统没有在hdpi文件夹中找到对应图片,在默认的文件夹下找到了,但是这时系统会认为该图适用于中等分辨率的屏幕,如果直接放到高分辨率的手机上不能适配,所以系统会自动的将图片放大,所以虽然是同一张图片,,但是现实出来就是一个正常,一个被放大。同理,如果同一张图片,放在ldpi的文件夹下,在低分辨率的手机上显示正常,但是如果放在hdpi文件夹中,系统认为该图是高分辨率显示的,要将图片缩小处理,所以显示出来的效果就是图变小了。所以才会出现明明是一张图片,只是放在不同的文件夹中,显示出来的效果就不同!

有时我们选择改变,并非经过深思熟虑,

Android drawable文件夹的使用

相关文章:

你感兴趣的文章:

标签云: