2012-10-12 208 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