在Android的资源中存放图片的有默认的三个文件夹:drawable-hdpi/drawable-mdpi/drawable-ldpi.这三个文件夹中分别是对应三种等级的屏幕分辨率;
drawable-hdpi:放高分辨率的图片,如:WVGA (480x800),FWVGA (480x854)
drawable-mdpi:放中等分辨率的图片,如:如HVGA (320x480)
drawable-ldpi:放低分辨率的图片,如:QVGA (240x320)
以上都是我们很容易也是最常看到的一种解释,这种解释是对的,但是理解是有问题的不全面的。
按照上面的理解我们一般会这么做,根据不同的手机分辨率我们存放不同的图片,比如我们放一张高清的图片到drawable-hdpi中,然后放一张质量很一般的到drawable-ldpi中,这时候软件会根据所安装的手机的分辨率来自动适配是用哪一张图片。这一点是对的,但是还有一点是非常重要的,那就是这三个文件夹下的图片是会被压缩的。
对于这三个文件夹下的图片都是会被压缩的,而其后面的hdpi、mdpi、ldpi分别同时也代表了不同的压缩比例、图片质量。
我最近在开发一个应用,是需要在1280*720这样的高分辨率的机器上跑的,于是刚开始我非常天真的认为,把图片放在drawable-hdpi中就OK了,但是最后显示出来的效果确实非常差的,但凡有点渐变色的地方模块化就非常的严重,我一直不知道是因为什么原因,刚开始以为是UI提供的图片的质量有问题。最后仔细研究才发现,是这三个文件夹的问题,这三个文件夹下的图片是被压缩了的。
既然这三个文件夹会被压缩而我又不希望这样,那怎么办呢?其实解决办法很简单。自己新建另外一个drawable文件夹,然后将所需要的图片资源文件都放在这个文件夹下面,这样图片就不会被压缩了,展示出来的图片的效果就非常好了。
所以,我的建议是,但凡有超过480*800的分辨率的软件都应该将资源放在这个drawable文件夹中,如果有需要支持其他的再把图片放在其他的文件夹中。不建议一个软件同时支持多种分辨率,这样只会让高分辨率的显示效果非常差,同时会增大软件的安装包。而是要为多种分辨率的提供不同的安装包。图片只需要一套就ok,放在不同分辨率的文件夹下就OK!
转载:http://blog.sina.com.cn/s/blog_62f987620100s1r4.html
分享到:
相关推荐
Android开发之屏幕适配values资源,直接复制到res文件夹下,引用即可实现屏幕适配
代码为博客实例:http://blog.csdn.net/lmj623565791/article/details/45460089 有问题请博客留言。
android适配自动生产xml
自动生成适配Android不同设备分辨率资源目录及文件 根据配置文件自动生成适配Android不同语言资源目录及文件
android 相机框架,前后摄像头、展示控件自动适配。轻轻松松帮你完成摄像头开发,减少适配。
相关博客:【android学习开源项目之AndroidAutoSize】AndroidAutoSize和DialogFragment的适配 https://blog.csdn.net/ljb568838953/article/details/103906449; 本demo的知识点:1.AndroidAutoSize 的使用(今日...
这是一篇关于Android屏幕适配的介绍
用于Android屏幕适配尺寸资源文件的生成
Android屏幕适配Android屏幕适配Android屏幕适配Android屏幕适配Android屏幕适配
Android屏幕适配:dimens自动生成工具以及使用方法,亲测好用,需要通过多套dimens做android屏幕适配的同学可以下载了,里面包括使用方法,方便易懂
这是一款可以自动生成各个屏幕分辨率.xml文件的工具,内含demo和注释,教你怎么应用,非常好用,欢迎star!
直接输入UI的安卓效果图px值在layout.xml文件里面,就会自动的适配所以android 的机型,解决了碎片化。
适配Android10以下及以上,下载更新apk自动安装,解决自动安装失败的问题。真实有用的,希望对大家有帮助。
android_px_多屏幕适配生成工具和资源android_px_多屏幕适配生成工具和资源android_px_多屏幕适配生成工具和资源android_px_多屏幕适配生成工具和资源
解决Android适配问题
android多图选择和视频选择,适配android7.0
android屏幕适配方案,做到了全适配
这几天做一个小软件在API28(Android 9.0)的模拟器上测试时,发现通知栏无效,经过一番查询,了解到:API26(Android 8.0)以后,引入了**通知渠道(Notification Channels)**这么一个东西来帮助用户管理通知。...
设置基准宽高的px,dp值,获取当前设备的宽高的px,dp值, 例如 x轴的值,double newvalue =(当前宽度/基准宽度)*具体的值,如此就可以得到适合屏幕比例的值,与设计稿比例保持一致
android适配资源文件