2017-07-26 179 views
1

我希望我的应用在所有屏幕尺寸上看起来都一样。我读了一些文章,说有不同的布局文件夹,如layout-sw320dp,layout-600dp ..等等。我这样做。但问题是,Nexus 5和Nexus 7使用相同的布局文件夹(layout-600dp)。Android中不同屏幕尺寸的布局

+1

您可以使用屏幕宽度,而不是'swXXXdp'布局纯密度......但是,使用适当的比例和相对布局 –

+0

时,通常你会使用RES /布局适合所有病例也许80%,如layout-sw600dp使您的布局在不同屏幕上显示**不同**。就像平板电脑的双窗格布局一样。如果你只是想要放大一切,你可以在layout_weight中使用LinearLayout,或者在%指南中使用ConstraintLayout –

+0

我在Android studio中制作游戏。我为ImageViews和Buttons使用svg文件。每个布局文件都是相对布局的。这不是一个普通的应用程序。 –

回答

0

一组六个广义密度:

ldpi (low) ~120dpi 
mdpi (medium) ~160dpi 
hdpi (high) ~240dpi 
xhdpi (extra-high) ~320dpi 
xxhdpi (extra-extra-high) ~480dpi 
xxxhdpi (extra-extra-extra-high) ~640dpi 

Layout Explaination

(OR) 您使用这种类型的布局文件夹的

res/layout/my_layout.xml    // layout for normal screen size ("default") 
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 
0

是的,这是正确的,对于不同的设备你必须做出不同的布局但是这里是另一种解决方案,即sdp library。通过使用这个库,你只需要做出o ne布局,并设置所有维度在sdp中,可与所有不同的设备一起工作。该库非常适合解决您的问题。

0
You should create all the layout folders 
layout-sw300dp, 
layout-sw330dp, 
layout-sw480dp, 
layout-sw600dp and 
layout-sw720dp also create values folders to set dimensions 
values-sw300dp, 
values-sw330dp, 
values-sw480dp, 
values-sw600dp, and 
values-sw720dp 

    a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
    480dp: a tweener tablet like the Streak (480x800 mdpi). 600dp: a 7” tablet 
    (600x1024 mdpi). 720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).