1
回答
【android多分辨率布局的问题】使用DIP配合marginLeft导致不相同
华为云实践训练营,热门技术免费实践!>>>   

实际上,我们知道320*480下的DIP等于160 480*800下DIP等于240。那么我们在这两个分辨率下用marginLeft和marginTop并且单位是DIP的话,会导致在两个分辨率下显示的位置不对应。


现在有没有什么成熟的办法解决这种问题?比如在代码内进行获得屏幕尺寸然后运算实际应该布局的DIP位置,但我们觉得这样会不会太麻烦并且浪费运算时间。希望能获得帮助
举报
刘京
发帖于6年前 1回/2K+阅
共有1个答案 最后回答: 6年前

你可以分别给不同分辨率的手机写布局:

res/layout/my_layout.xml             // layout for normal screen size ("default") 
res/layout-small/my_layout.xml       // layout for small screen size 
res/layout-large/my_layout.xml       // layout for large screen size 
res/layout-xlarge/my_layout.xml      // layout for extra large screen size 
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation 
 
 
 
  

Low density Small screens QVGA 240x320  
 
res/layout-small-ldpi 
res/layout-small-land-ldpi 
 

Low density Normal screens WVGA400 240x400 (x432) 
 
res/layout-ldpi 
res/layout-land-ldpi 
 

Medium density Normal screens HVGA 320x480 
 
res/layout-mdpi 
res/layout-land-mdpi 
 

Medium density Large screens HVGA 320x480 
 
res/layout-large-mdpi 
res/layout-large-land-mdpi 
 

High density Normal screens WVGA800 480x800 (x854) 
 
res/layout-hdpi 
res/layout-land-hdpi 
 

Xoom (medium density large but 1280x800 res) 
 
res/layout-xlarge 
res/layout-xlarge-land 

--- 共有 4 条评论 ---
zoulu1回复 @刘京 : 因为他是代码布局,而不是xml布局 5年前 回复
迷途d书童回复 @刘京 : 是的,用dip可以自适应屏幕的分辨率。 6年前 回复
刘京呃,我想表达的是,我一直都以为因为有DIP的存在,所以480*320的布局能通用到800*480上面,实际上是可以的吗?但是我发现貌似320*480下的DIP只有160跟480*800的240有区别——是不是因为这个导致两种布局的不吻合? 6年前 回复
刘京你好,实际上我反编译过网易新闻——因为他的界面可以在540*960上也显得的很好——发现他其实就写了一份布局文件,却能都适应。 6年前 回复
顶部