安卓19:Android studio图片适配问题,解决图片缩放现象

您所在的位置:网站首页 背景图片太小怎么办 安卓19:Android studio图片适配问题,解决图片缩放现象

安卓19:Android studio图片适配问题,解决图片缩放现象

2024-07-09 13:09| 来源: 网络整理| 查看: 265

mipmap:

采用Android Studio开发Android APP,在项目的res目录下,会出现以mipmap开头的文件夹。mipmap只有这几个密度文件,不需要新建! 在这里插入图片描述 根据Android官方的描述,mipmap仅仅用于存放APP启动图标,可由Image Asset Studio生成。Image Asset Studio会生成mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi五种尺寸的图标。各种密度下的图标建议尺寸为

密度建议尺寸mdpi48*48hdpi72*72xhdpi96*96xxhdpi144*144xxxhdpi192*192 drawable

Android系统可以在具有不同屏幕尺寸和密度的设备上运行,并将每个应用的用户界面调整为适应其显示的屏幕,会进行缩放和大小调整。为了最大程序优化更多设备上的用户体验,开发者需要针对不同的屏幕尺寸和密度优化应用。 android的drawable文件一共可以有:drawable-ldpi(低密度) drawable-mdpi(中等密度) drawable-hdpi(高密度) drawable-xhdpi(超高密度) drawable-xxhdpi(超超高密度) drawable-xxxhdpi(超超超高密度) drawable-nohdpi(无缩放) drawable密度文件需要用户自己建立,系统默认未建立密度文件,与mipmap不同 drawable六种通用密度 Android系统为了简化开发者为多种屏幕设计用户界面的方式,Android将实际屏幕尺寸和范围作了通用规定,称作“根据可用屏幕宽度管理屏幕尺寸的新技术”。六种通用密度为

密度dpi范围ldpi0~120dpimdpi120~160dpihdpi160~240dpixhpi240~320dpixxhdpi320 ~480dpixxxhdpi480~640dpi Android系统适配原则(drawable和mipmap均适用)

以drawable为例: Android为了更好地优化应用在不同屏幕密度下的用户体验,在项目的res目录下可以创建drawab-[density](density为6种通用密度名)目录,开发者在进行APP开发时,针对不同的屏幕密度,将图片放置于对应的drawable-[density]目录,Android系统会依据特定的原则来查找各drawable目录下的图片。查找流程为:

先查找和屏幕密度最匹配的文件夹。如当前设备屏幕密度dpi为170,则会优先查找drawable-mdpi目录;如果设备屏幕密度dpi为420,则会优先查找drawable-xxhdpi目录。如果在最匹配的目录没有找到对应图片,就会向更高密度的目录查找,直到没有更高密度的目录。例如,在最匹配的目录drawable-mdpi中没有查找到,就会查找drawable-hdpi目录,如果还没有查找到,就会查找drawable-xhdpi目录,直到没有更高密度的drawable-[density]目录。如果一直往高密度目录均没有查找,Android就会查找drawable-nodpi目录。drawable-nodpi目录中的资源适用于所有密度的设备,不管当前屏幕的密度如何,系统都不会缩放此目录中的资源。因此,对于永远不希望系统缩放的资源,最简单的方法就是放在此目录中;同时,放在该目录中的资源最好不要再放到其他drawable目录下了,避免得到非预期的效果。如果在drawable-nodpi目录也没有查找到,系统就会向比最匹配目录密度低的目录依次查找,直到没有更低密度的目录。例如,最匹配目录是xxhdpi,更高密度的目录和nodpi目录查找不到后,就会依次查找drawable-xhdp、drawable-hdpi、drawable-mdpi、drawable-ldpi。

举个例子,假如当前设备的dpi是320,系统会优先去drawable-xhdpi目录查找,如果找不到,会依次查找xxhdpi → xxxhdpi →nodpi→ hdpi → mdpi → ldpi。对于不存在的drawable-[density]目录直接跳过,中间任一目录查找到资源,则停止本次查找。

总结一下图片查找过程:优先匹配最适合的图片→查找密度高的目录(升序)→查找密度低的目录(降序)。

资源适配流程简单归纳如下: 在这里插入图片描述

图片的放大和缩小(drawable和mipmap均适用)

前述说到Android为了能够更好地适配各种屏幕,会依据当前设备的dpi对目录中的图片进行缩放或放大,那么什么情况下图片被放大,什么情况下图片被缩小呢? 为了更好的描述,把“符合当前设备dpi的目录”表示为”匹配目录“。比如,设备的dpi为320,这匹配目录为drawable-xhdpi;设备的dpi为150,则匹配目录为drawable-mdpi。

图片的放大和缩小遵循以下规律:

如果图片所在目录为匹配目录,则图片会根据设备dpi做适当的缩放调整,基本是不会被缩放的。如果图片所在目录dpi低于匹配目录,那么该图片被认为是为低密度设备需要的,现在要显示在高密度设备上,图片会被放大。如果图片所在目录dpi高于匹配目录,那么该图片被认为是为高密度设备需要的,现在要显示在低密度设备上,图片会被缩小。如果图片所在目录为drawable-nodpi,则无论设备dpi为多少,保留原图片大小,不进行缩放。

实例验证 验证图片的放大和缩小

在配置为1080×1920 - 420dpi的模拟器上,匹配为-xxdpi目录(最合适的目录)。从网上找一张Android logo图片分别放在drawable-mdpi、drawable-xxhdpi、drawable-xxxhdpi文件夹下,查看图片的显示效果(如下)。从图中可以明显看到图片的放大和缩小,且比设备屏幕密度低的drawable-mdpi目录图片被放大,比设备屏幕密度高的drawable-xxxhdpi目录图片被缩小。 在这里插入图片描述干货(参考http://blog.csdn.net/myoungmeng/article/details/54090891)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3