谷歌让用dp而不是px作单位来显示图标,那设计图标时要提交的还是.png的文件吗?还是什么别的格式呢?还是要分为ldpi、mdpi、hdpi和xhdpi吗? 还是只用提交一个文件就可以了?,,,搞不明白,求指导dp设计
解决方案 »
- 请教android openGL 顶点坐标的问题
- 关于HttpPost传送json的问题
- 真机 INSTALL_FAILED_MISSING_SHARED_LIBRARY
- Popup dialog 焦点丢失问题
- android 从SD卡导入vCard文件到通讯录 号码带"-" 如何把横线去除
- 比如我想调用自己已经安装好了的apk软件?
- 请求网络接口出错:android.os.NetworkOnMainThreadException
- Hello Android初级问题
- Android studio @override出问题了新人求解
- 新手求助,键盘无法输入
- 新建一个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