Android图片资源处理

Android用到的图片资源一般指三种:png/jpg等位图文体,.9文件,selector xml文件,在之前的开发中,都放在drawable目录下,但使用最新的Android Studio时,我们会发现所有的登录icon被默认放在了mipmap目录下,并且在不同子目录下放着不同尺寸的图片。是不是在新版本中,所有的位图资源都移到mipmap目录下了呢,我们去官方开发指南中可以看到,drawable和mipmap目录使用解释如下:

也就是说,除了登录使用的icons放在mipmap目录下,其他icon图片、.9图片及xml文件都还是放在drawable目录下。

但是,我个人觉得如下方式更方便:

1).9文件及xml文件放在drawable目录;

2)所有的icon文件放在mipmap目录。

为什么这样呢?因为xml文件和.9文件本身都是带有缩放功能,可以自适应不同屏幕,而icon图片一般为了适应不同屏幕,可能需要放在不同的子文件夹下,如果都放在drawable目录下,会先的很混乱,而把icon图片放在mipmap目录下,会显得很清晰。

另外,最新版本的布局layout文件调用资源时,已经可以默认直接调用mipmap目录的文件了。app在加载时,会自动调用相应尺寸的位图,如果对应目录下没有,则会从xxxhdpi目录向下查找。

此外,还需注意的是,同一个图片若放在不同目录下,最终在手机上显示效果是不一样的,为什么呢?

因为对于mipmap目录下的每一张位图,系统会计算出图片的独立像素大小,比如一张36*36px的图片,如果放在mdpi子目录下,因为该目录对应的dpi是160,缩放因子是1.0,所以系统计算出的独立像素大小也为36*36dp;假如把该图片放在hdpi目录下,该目录对应的dpi是240,缩放因子是1.5,系统计算出该图片的独立像素就是24*24dp。换算成独立像素为单位的图片,使用起来就可以很好的自适应各种尺寸了。

那这样看来,只需要准备一套图片,就可以满足不同尺寸需要。使用哪种尺寸呢,常见的有ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi,缩放因子分别是0.75,1,1.5,2,3。如果使用较小的尺寸,当在分辨率较高的手机上使用,图片放大倍数太高,肯定不清晰;如果使用较大的尺寸,肯定又会占用太多的资源,安装包较大,加载后占用内存也会比较大。综合考虑,选择缩放因子为2.0的尺寸比较合适。这时,你的app布局需要多大dp的图片,就让UI裁成2倍px的图片,放入mipmap-xhdpi目录下,就可以很好的满足各种尺寸屏幕所需了!

时间: 2024-10-21 15:46:59

Android图片资源处理的相关文章

Android图片资源的缩放问题

1.  图片缩放后对齐的问题 在Android的开发中,如何使用图片对很多开发人员是一个很头痛的事.最常见的问题是在一台手机上调试好的UI,在不同dpi的手机上会变形. Android提供了适配不同dpi的方案,每种dpi都有对应的资源目录.但是我们在开发程序时,对图片资源却不能这样处理,因为图片资源太大,如果我们每种类型的dpi都使用一套图片,应用的尺寸就会急剧膨胀,这可不是我们想看到的结果. 如果只有一套图片,但是有drawable,drawable-mdpi,drawable-hdpi等好

Android图片资源获取原则

通常图片资源文件夹有drawable.drawable-ldpi.drawable-mdpi.drawable-hdpi.drawable-xdpi.drawable-xxdpi等,如果手机屏幕本来应该是对应drawable-xxdpi的,,但是drawable-xxdpi中没有图片,则它会往drawable-xxxdpi里取图片,实在没有,从drawable-xdpi里拿. 总结:图片资源优先获取自己对应分辨率的图片,如果没有,往高处拿,其实不行往低处拿,以此类推.

Google推荐的命名规则——Android图片资源

1.译 资产类型 前缀 例子 图标 ic_ ic_star.png 启动图标 ic_launcher ic_launcher_calendar.png 菜单图标和操作栏图标 ic_menu ic_menu_archive.png 状态栏图标 ic_stat_notify ic_stat_notify_msg.png 标签(选项卡)的图标 ic_tab ic_tab_recent.png 对话框的图标 ic_dialog ic_dialog_info.png 2.原文

【转】Google推荐的命名规则——Android图片资源

http://blog.csdn.net/yy1300326388/article/details/45443477 1.译 资产类型 前缀 例子 图标 ic_ ic_star.png 启动图标 ic_launcher ic_launcher_calendar.png 菜单图标和操作栏图标 ic_menu ic_menu_archive.png 状态栏图标 ic_stat_notify ic_stat_notify_msg.png 标签(选项卡)的图标 ic_tab ic_tab_recent.

Android 教程

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”.Android操作系统最初由Andy Rubin开发,主要支持手机.2005年8月由Google收购注资.2007年11月,Google与84家硬件制造商.软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统.随后Google以Apache开源许可证的授权方式,发布了An

Android简单加密保护自有图片资源

现在大部分android应用的图片资源,被反编译后就可以直接拿来用,如果不想让自己的图片资源直接被反编译后使用,首先想到的应该是把图片加密.这里笔者抛砖引玉,草草写了一个对图片进行简单加密的方法,希望对各位看官有用. 首先是加密部分,这里使用的是简单的异或来将图片进行加密.新建一个java project或者干脆直接用文本文件写下下面的代码,然后在命令行执行,代码如下: 1 import java.io.File; 2 3 import javax.imageio.stream.FileImag

android系统的图片资源

使用系统的图片资源的好处有,一个是美工不需要重复的做一份已有的图片了,可以节约不少工时:另一个是能保证我们的应用程序的风格与系统一致. 1.引用方式 在源代码*.Java中可以进入如下方式引用: myMenuItem.setIcon(android.R.drawable.ic_menu_save); 在*.XML文件中的<resource>可以进行如下引用: android:icon="@android:drawable/ic_menu_save" 2.相关图标 alert

【Android】图片资源的访问与网格式图片浏览器

使用Android的GridView与BaseAdapter能够轻易完成网格式图片浏览器.下面用一个例子还说明,同时说明安卓是如何访问图片资源.其实所谓的图片资源,就是你拷贝到安卓工程的图片.相当于你把几张图片放到网页的站点文件夹,之后用<img>标签引用就这么简单. 如下图,在安卓工程中有8张我自己拷贝进去的图片,与自带的ic_launcher.png,共9张图片. 下面完成一个网格式图片浏览器,一开始先读取这9张图片,点击任何一张查看大图,可以按右上角的菜单返回,也可以按返回键返回. 一.

Android ImageView 不显示JPEG图片 及 Android Studio中怎样引用图片资源

Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里须要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其他的JPEG格式的图片确能够正常的显示. 原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示. 解决:换一张图片.或又一次生成JPEG图片. 假设还是不能正常显示,建议在设置完VISIBLE后,调用例如以下方法: iv.setVisibili