还是没搞清楚dp这个单位。不是说dp是与像素无关,只与物理尺寸有关的单位吗?我试着在一个layout里放置一个imageview,图片实际大小为100px x 100px,imagevie
w的长宽用dp设定为100dp x 100dp模拟器里设置了分辨率为1024X600,然后LCD density分别设置为120/160/240。安装ap
k后,发现imageview的大小还是在变动。按照我的理解,既然为imageview设定长宽用了
dp,就应该与lcd density无关啊。估计我还是理解错了,能帮我指出来吗?或者说 怎样才能实现在固定分辨率(譬如1024*600),不同LCD density下的相同布局
效果?我原以为只要分辨率相同,lcd density不同,我只需用px单位就行,但还是有问题。。

解决方案 »

  1.   

    我来解释为什么?
    首先要理清两个概念,1.像素也就是我们常说的像素点单位是px,2.物理尺寸也就是手机的实际单位尺寸
    计算实际物理尺寸的公式是: dp = px * (dpi / 160)所谓的dpi也就是你的指的density 120/160/240
    所以120/160/240分别对应的实际物理尺寸分别是100/0.8,100/1,100/1.5 怎样才能实现在固定分辨率(譬如1024*600),不同LCD density下的相同布局
    效果?
    布局可以一样,但图片必须不一样,高分辨的图片放在drawable-hdpi,中等分辨率的图片放在drawable-mdpi
    低分辨率的图片放在drawable-ldpi,假如这三个文件夹都找不到图片,系统就会去drawable文件下寻找官方文档解释的更清楚:http://developer.android.com/guide/practices/screens_support.html
      

  2.   

    谢谢你的回复。但有两点还是不太清楚:
    1、要布局一样的话(同一分辨率,不同LCD density),是用dp还是px?
    2、你说图片必须不一样,那针对hdpi,mdpi, ldpi 应该制作多大尺寸的图片才能完美显示呢(不拉伸)?
    是不是在mdpi下 100px大小的图片,在hdpi下就应该做成66.6px,在ldpi下就做成125px?我理解对吗?
      

  3.   

    根据你的问题来回到
    1.布局一样请用dp
    2.可以这么理解
    应该设计多大尺寸的图片请参考官方文档:http://developer.android.com/guide/practices/ui_guidelines/icon_design.html