2012-10-12 205 views
0

我已经为屏幕尺寸resoulution 480x800px(我有我的所有我的布局和ImageButtons在drawable-hdpi文件夹中,我用dp代替了px)的应用程序,在xml中我使用了layout_marginLeft和marginTop放置所有的按钮和一切。当我在480x800模拟器上运行我的应用程序时,它是完美的,但如果我更改屏幕大小和resoulution所有按钮更改屏幕上的位置和大小。我很沮丧,因为我不知道该怎么做才能使它适合所有的屏幕尺寸和资源。有小费吗?android屏幕尺寸resoulution

我应该在不同的文件夹中使用不同的尺寸?我有hdpi 480x800,我应该在xhdpi中有什么?

+0

您可以为不同的屏幕尺寸创建不同的布局.... – omi0301

+0

也许使用线性布局? –

+0

如果您显示您的布局,我们可能会帮助... –

回答

4

您必须为不同的屏幕维护不同的布局。例如:

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 

res/drawable-mdpi/my_icon.png  // bitmap for medium density 
res/drawable-hdpi/my_icon.png  // bitmap for high density 
res/drawable-xhdpi/my_icon.png  // bitmap for extra high density 

添加这一项中的manifest.xml

<supports-screens android:smallScreens="true" 
     android:normalScreens="true" 
     android:largeScreens="true" 
     android:xlargeScreens="true" 
     android:anyDensity="true" /> 

检查此链接:http://developer.android.com/guide/practices/screens_support.html

为了获得最佳的UI设计,你应该保持相对的布局而不是LinearLayout中。

看到这个:

例如:要显示一个图像。然后,现在你需要保持不同尺寸不同的屏幕相同的图像。

36x36 for low-density 
48x48 for medium-density 
72x72 for high-density 
96x96 for extra high-density 

3:4:6:8缩放比率

+0

我应该在不同的文件夹中保存图像的大小不同? – Peter

+0

@ user1734802 - 您应该看到xdpi,hdpi,mdpi和ldpi文件夹。您应该在那里保存不同大小的图像。此外,创建不同大小的xml布局。 – omi0301

+0

例如:您想要显示一个图像。然后,现在需要针对不同屏幕以不同尺寸维护相同的图像。 36x36用于低密度 48x48用于中密度 72x72用于高密度 96x96用于超高密度 3:4:6:8缩放比率 – Lokesh

3

我非常感谢如果我可以看到一些代码。

如果您使用带有android:layout_below等属性的RelativeLayout以及dp(密度像素)中的边距(例如, android:layout_marginTop="10dp"它应该工作得很好。

You can see an example here.

5

它其实很简单。你只需要添加不同尺寸的布局,让android选择最适合的尺寸。 eg-layout-small(对于小屏幕),layout-large(对于大屏幕)等。也将图像放在所有三个文件夹(drawable-hdpi,drawable-ldpi,drawable-mdpi)上,以便android可以根据屏幕尺寸。 只需参考http://developer.android.com/training/multiscreen/screensizes.html