Android呈现的图片大小和图片分辨率不符的原因

    若出现载入的图片使用wrap_content,但是实际显示的效果是原分辨率的一半的话,则有可能是因为把图片放在了drawable-xhdpi或drawable-hdpi文件夹内。

    而事实上我的实验机器的屏幕密度只是在drawable-mdpi范围里面的,所以当我的图片放在本应是放更高屏幕密度的图片的文件夹里,在读取图片资源的时候就会以为那些图片是要给更高屏幕密度的机器用的,因此会下意识地压缩图片。

    我的机器屏幕密度只有160dpi,而这个dpi值是位于drawable-mdpi范围内的,可见下图:

    

 

    对应知识的Android开发文档:

    http://developer.android.com/guide/practices/screens_support.html

 

    屏幕密度(Screen density)即是屏幕的一个物理区域的像素个数,一般指的是每英寸(2.54cm)的点数(dpi, dots per inch)

    相关概念:

    dpi:鼠标的DPI是每英寸点数,也就是手指每移动一英寸屏幕指针在屏幕上移动的点数。

    px:px是pixel的缩写啦,pixel即像素,它不是自然界的长度单位。px是就是一张图片中最小的点,一张位图就是由这些点构成的。1024px就是1024像素,最简单的你可以在windows桌面属性里的“设置”看到,如果是1024×768,也就是说水平方向上有1024个点,垂直方向上有768个点。谁能说出一个“点”有多长多大么?可以画的很小,也可以很大。如果点很小,那画面就清晰,我们称它为“分辨率高”,反之,就是“分辨率低”。所以,像素的大小是会“变”的,也称为“相对长度”。

    dp:一种虚拟的像素单位,用来以密度无关的方式来表达布局维度和位置,等价于在160dpi屏幕上的一个物理像素点。

    三者转换公式:  px = dp * (dpi / 160)

    在实体机器获得以上参数的代码:http://xuewei.blog.51cto.com/6061915/1081026

 

 

 

 

 

 

 

 

    以下内容摘自http://bbs.hiapk.com/thread-749939-1-1.html

       有人肯定会对android中放置图片的地方有人肯定会对于android中放置图片的地方drawable—hdpi、drawable—mdpi、drawable—ldpi这三个感到好奇。肯定心里会想,放在哪一个都行,只要是在android中的res目录下的drawable中就行,系统会自己找到。有心的朋友肯定会他把弄个究竟。我以前对drawable—hdpi、drawable—mdpi、drawable—ldpi这三个也了解了一下,但是只是字面上的,没有真正理解透彻,到今天我才算有稍深点的理解。drawable—hdpi看他的单词名肯定知道他是放置高分辨率的图片,drawable—mdpi放置中等分辨率的图片,drawable—ldpi放置低分辨率的图片。大部分人都把的图片放在drawable—mdpi中。起初我认为随便将图片放置在三个当中的任意一个都行,但是今天我知道了。在分辨率低于480*800时把图片放在drawable—mdpi中是不会有什么影响,但是当分辨率为420*800或高于它时就会出问题了。你的手机屏幕有那么大但是他会将图片拉伸,当加载图片后让你感觉该屏幕没有实际的大小,而如果将图片放到drawable—hdpi中则该问题就不会存在了。比如手机屏幕的大小为420*800如果你将图片放在drawable—mdpi中,那么你就要准备一张340*525分辨率的图片,

 

你可能感兴趣的:(android,图片,大小,分辨率,dpi)