谷歌让用dp而不是px作单位来显示图标,那设计图标时要提交的还是.png的文件吗?还是什么别的格式呢?还是要分为ldpi、mdpi、hdpi和xhdpi吗? 还是只用提交一个文件就可以了?,,,搞不明白,求指导dp设计
解决方案 »
- android开发版本选择
- gcm经常不能用,需要用户绑定Google账号,有没有替代方案?
- 一个看似简单的问题。findViewById 返回 null
- android 2.2平台搭建成功,但模拟器只能启动一次?请问怎么回事?
- 有人做NDK的opengles开发么?求绘制文字方法~
- Android平台如何解决Activity的重入问题??
- 麻烦牛人看看,我这程序在虚拟机上正常运行,在真机上就出问题了,下载TOMCAT的某资源。
- 求大神 关于unity3d C#与 xml的问题
- android 方法被划了线,提示不可用怎么办
- 如何定位自己app扫描速度慢的原因?
- 新建一个android项目,项目里只有空的包名,包下什么都没有
- 请教关于View的android:onClick的问题
ldpi=120dpi,mdpi=160dpi,hdpi=240dpi,xhdpi=320dpi.
图片在其他dpi下显示的尺寸的计算公式是:目标dpi/原始dpi×原始尺寸
假设你只有一张图片,放在xhdpi目录下,图片尺寸是100×200:
在ldpi下的被缩小成:120/320=0.375倍,也即38×75
在mdpi下的被缩小成:160/320=0.5倍,也即50×100
在hdpi下的被缩小成:240/320=0.75倍,也即75×150
假设你只有一张图片,放在ldpi目录下,图片尺寸是100×200:
在mdpi下的被放大成:160/120=1.33倍,也即133×267
在hdpi下的被放大成:240/120=2倍,也即200×400
在xhdpi下的被放大成:320/120=2.67倍,也即267×533
android:layout_width="100dp"
android:layout_height="100dp"
或者px,意思是这个控件里显示图片的宽度和高度是dp,然后把1dp换算成px,例如,对于hdpi的屏幕,1dp一般等于1.5px,对于xhdpi,1dp=2px(屏幕像素密度为2)。
图标设计的时候是以.png或者9.png格式存放在drawable、drawable-mdpi、drawable-hdpi等目录下,目的是为了适应不同屏幕尺寸,例如,同一款应用安装在mdpi、hdpi、xhdpi分辨率不同的屏幕手机上,它会分别读取到mdpi、hdpi、xhdpi目录下的图标资源,这样做就可以囊括更多的手机,当然如果你只将图片放在hdpi目录下,那么所有分辨率的手机都有可能都只使用hdpi目录下的图片,这样会造成显示效果上有差异,要么感觉放大了要么感觉缩小了.
因此三方应用一般都会考虑在drawable、drawable-mdpi、drawable-hdpi、drawable-xhdpi等目录下放不同像素大小的同一张图标资源(.png或.9.png),以适应市面上的不同分辨率的手机。
不知道这样说楼主明白没有?
换了通用dp后改变的是代码,对于设计人员提供的图标没改变,还是36 x 36 px 48 x 48 px 72 x 72 px?差不多是这个意思。我说的那一段,意思是如果你有一张图,只是放在某一个dpi的目录下,那么在其他dpi的设备上,图片会被自动缩放,显示出来的图片尺寸跟原始的不一样。如果你各个dpi目录下都有这张图,那么在不同dpi的设备上,显示出来图片的大小跟你原始图片都是一样的,不会再去缩放。
在不同dpi的设备上,1dp对应的px都是不一样的,计算公式是:dips=(pixs*160)/densityDpi