`
mengsina
  • 浏览: 191563 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Android】浅谈Android中的图像资源自动适配压缩机制

阅读更多
在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
分享到:
评论
2 楼 mengsina 2011-10-30  
r8HZGEmq 写道
恕我钻牛角尖的请教一个问题
比如我将480x800的图片A放在hdip下面,又放了一张480x854的图片A放到我自己新建的drawable文件夹下,然后在分辨率为480x854的机器上运行,系统会优先选择哪个图片呢。


480x854的机器运行先找hdip文件夹下的图片A。如果该图片A不存在,再找drawable下的。
虽然图片A的大小是480x800,但是系统不管,它是按照名字找的。不会在乎图片的分辨率。
1 楼 r8HZGEmq 2011-10-29  
恕我钻牛角尖的请教一个问题
比如我将480x800的图片A放在hdip下面,又放了一张480x854的图片A放到我自己新建的drawable文件夹下,然后在分辨率为480x854的机器上运行,系统会优先选择哪个图片呢。

相关推荐

    Android屏幕适配资源

    在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率。本资源包"Android屏幕适配资源"专注于解决这一问题,提供了values资源,能够帮助开发者轻松实现不同屏幕尺寸...

    android分辨率适配,xml自动生成工具

    在Android系统中,屏幕适配主要通过使用不同密度和尺寸的资源文件夹来实现。例如,ldpi(低密度),mdpi(中密度),hdpi(高密度),xhdpi(超高清)等是密度相关的文件夹,而sw360dp,sw480dp等则对应不同的屏幕...

    Android屏幕尺寸适配资源生成

    在Android中,屏幕适配主要通过以下几种方式实现: 1. **密度独立像素(Density Independent Pixel, dp)**:dp是Android系统推荐使用的单位,它不直接与像素对应,而是根据设备的屏幕密度进行转换。1dp在160dpi的...

    自动生成Android适配不同机型、语言资源文件

    总的来说,适配Android的不同机型和语言资源,是通过创建特定的资源文件夹、编写适配的资源文件和使用自动化工具来完成的。`pxadapter`这样的工具大大简化了这一过程,使得开发者能够更专注于应用功能的实现,而不是...

    Android-androidUI适配屏幕适配

    在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着丰富的屏幕尺寸和分辨率。本篇文章将深入探讨如何进行Android UI的适配工作,确保应用在不同设备上都能呈现出良好的视觉效果和用户体验。 ...

    android适配自动生产xml

    此外,一些集成开发环境(IDE),如Android Studio,也提供了类似的功能,如布局编辑器的尺寸检测和自动生成适配资源。 在实现自动化的过程中,有几个关键点需要注意: 1. **屏幕密度处理**:对于不同的屏幕密度...

    Android屏幕适配:dimens自动生成工具以及使用方法,亲测好用

    在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率。`dimens.xml`文件是Android系统提供的一种资源文件,用于存储尺寸相关的常量,如字体大小、间距、控件尺寸等...

    Android 适配资源文件自动生成器

    代码为博客实例:http://blog.csdn.net/lmj623565791/article/details/45460089 有问题请博客留言。

    直接输入px自动适配所有android机型

    标题"直接输入px自动适配所有android机型"所描述的是一种解决策略,它允许开发者在布局文件(layout.xml)中直接使用像素(px)单位来定义UI元素,然后系统会自动处理适配工作,消除设备间的碎片化现象。 这个解决...

    Android多分辨率适配

    在Android开发中,面对各种不同尺寸和分辨率的设备,如何实现多分辨率适配是一个至关重要的问题。本篇文章将深入探讨Android系统如何处理不同分辨率的显示,并提供有效的适配策略。 一、Android屏幕分类 Android...

    android 相机框架,前后摄像头、展示控件自动适配。

    在Android中,常见的相机展示控件包括`SurfaceView`、`TextureView`和`SurfaceTexture`。这些控件可以帮助我们将相机预览显示在屏幕上。 1. `SurfaceView`:性能优秀,适用于低功耗场景,但更新可能存在延迟。 2. `...

    Android 屏幕适配工具

    "Android屏幕适配"是Android开发中的核心概念,它涉及到尺寸单位、布局权重、资源多版本、比例适配以及使用百分比布局等多种技术。 1. 尺寸单位: - dp (density-independent pixels):与设备像素密度无关的像素...

    Android多分辨率适配方案

    Android 界面适配机制,即在资源后面添加对屏幕尺寸和屏幕密度的限定,通过不同的限定区分不同的平台资源,Android 在使用资源的时候会优先选择满足本平台限定的资源,再找最接近条件的,再找默认(即不加限定),...

    android屏幕适配工具

    在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率,这使得应用能在各种设备上保持良好的显示效果成为一项挑战。本篇将详细讲解"android屏幕适配工具"的相关知识...

    DialogFragment和AndroidAutoSize 的适配问题

    相关博客:【android学习开源项目之AndroidAutoSize】AndroidAutoSize和DialogFragment的适配 https://blog.csdn.net/ljb568838953/article/details/103906449; 本demo的知识点:1.AndroidAutoSize 的使用(今日...

    android_px_多屏幕适配生成工具和资源

    在Android中,像素并不直接对应于屏幕的实际大小,因为不同的设备具有不同的像素密度。例如,低密度(ldpi)、中密度(mdpi)、高密度(hdpi)和超高清密度(xhdpi)等,每个密度级别的1dp(density-independent ...

    Android studio通过切换不同layout实现横竖屏适配

    本篇将详细介绍如何在Android Studio中通过切换不同的layout资源来实现横竖屏的适配。 一、理解布局资源 在Android应用中,布局资源(layout)存储在res/layout目录下,用于定义用户界面的布局结构。每个布局文件...

    适配Android高低版本自动更新apk安装

    总的来说,适配Android高低版本自动更新apk安装涉及权限管理、文件存储路径选择以及正确构建和启动安装`Intent`。理解这些关键点并相应地调整代码,可以有效解决自动安装失败的问题,为用户提供无缝的更新体验。希望...

Global site tag (gtag.js) - Google Analytics