概述
1, 我们在开发的时候,特别是刚开始入行的时候会有疑惑,为什么那么多文件夹放图片,比如mdpi,hdpi,xhdpi,xxhdpi,从ui手里拿到图片我到底该放在哪呢? 今天就来分享一下,图片应该放在哪,并分享一下图片里我理解的像素点。
网上有很多描述这些文件的文章,大家可以看到;
mdpi : 120dpi--160dpi
hdpi : 160dpi--240dpi
xhdpi : 240dpi--320dpi
xxhdpi : 320dpi--480dpi
这些参数可以判断你的手机会优先从哪个文件夹里去找图片
举个例子,如果你的手机是分辨率是:1920x1080,尺寸是5.1寸,我们可以算他的dpi值,
公式是(√ ̄1920² + 1080²)/5.1 =2202/5.1= 431dpi
算法是屏幕尺寸是通过手机的左上角到手机的右下角的长度,所以我们用屏幕长和宽的像素点根据勾股定理算出手机从左上角到右下角的像素值,由像素值/尺寸就算出了每尺寸有多少像素值就是dpi,
由算出来的431dpi可以知道,手机会先从xxhdpi里去查找图片,如果没有会往上找。如果xhdpi里有这个图片会使用xhdpi里的图片,但是你调用一些方法去看这个图片的像素值的时候发现会比在xhdpi里的图片放大了,就是宽高的像素都增加了,那么为什么要放大以后再显示出来呢? 这就引出来,android为什么引入这么多文件夹来放图片的原因了:
因为我们在开发的时候我们往往给某一个控件设置一个大小,比如:
我这里只想这个图片在任何手机上都是手机的这个比例。怎么办,就是在手机像素大的时候就是手机api大的时候我让这个手机去加载像素大的图片,这样比例才能一样,所以我们要在xxhdpi里放像素相对大一点的图片,比如:xxhdpi放94x94的xhdpi放74x74,hdpi里放45x45,这样不管是什么样的手机图片都能在指定的比例显示,说回刚刚那个问题如果一个xxhdpi的手机加载了一个xhdpi里的图片为什么要放大呢,因为我是xxhdpi的手机我需要加载xxhdpi里的图片,但是xxhdpi文件夹里没有这个图片,只能加载xhdpi文件夹里的图片,那么加载这里的图片的时候我们为了让xhdpi里的图片能够达到xxhdpi里的图片在手机里显示的比例,就把这个图片做了放大操作。希望大家能够明白。
2,下面说一下图片像素的理解
像素是图片中一个最小单位,也是手机屏幕中的最小单位
我们往往就像素描述图片的大小。但是用图片描述图片是不准确的,我们图片也有尺寸,如果相同的尺寸,含有像素多的图片,就越清晰,所以只用像素描述图片是不能判断图片的清晰度的。清晰度其实就像上边说的dpi的值,这个值越大就越清晰,因为含有的像素点多,就会比较精细。
好啦,希望大家能吸收点东西。
最后
以上就是故意白昼为你收集整理的android中 mdpi,hdpi,xhdpi,xxhdpi文件理解,图片像素理解的全部内容,希望文章能够帮你解决android中 mdpi,hdpi,xhdpi,xxhdpi文件理解,图片像素理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复