2013-04-21 69 views
0

我想在所有設備上製作完全相同佈局的遊戲。我熟悉dpwrap_contentfill_parent。但他們不會產生完全相同的佈局。在所有設備上具有額外的相同佈局。怎麼樣?

有沒有一種方法可以使各種視圖的寬度和高度,以及設備屏幕邊緣的寬度和高度以相對於屏幕寬度和高度的百分比表示?

喜歡的東西:

android:layout_width="40%" 

我知道上面的XML代碼不起作用,但有一種解決方法嗎?對此沒有Java解決方案嗎?什麼東西? 在下面的圖片是我試圖實現所有設備中發生的。

enter image description here

回答

2

我知道上面的XML代碼不起作用,但有一種解決方法嗎?

LinearLayoutandroid:layout_weight允許您按百分比工作。如下的佈局有三個按鈕,給定的50%,30%,和分別在屏幕的20%:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="50" 
     android:text="@string/fifty_percent"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="30" 
     android:text="@string/thirty_percent"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="20" 
     android:text="@string/twenty_percent"/> 

</LinearLayout> 

要做的事情的百分數,設置寬度或高度(對於水平或垂直LinearLayouts,分別)爲0dp,然後將android:layout_weight指定爲所需的百分比(例如,20)。如果權重的總和不會增加到100,則將android:weightSum="100"添加到LinearLayout本身。

當然,對於術語「精確」的任何常規定義,按百分比進行處理並不會給您「完全相同的佈局」。但是,也許它會滿足你的需求。它當然可以從屏幕截圖實現標記設計。

+0

LinearLayout的問題是,它不允許將視圖放在彼此之上。在我的圖像中,背景是在ViedeoView中播放的電影。在一個RealativeLayout中嵌套LinearLayout是否可行? – user2186852 2013-04-21 15:56:47

+0

@ user2186852:「對於同一活動,將LinearLayout嵌套到RealativeLayout中是否可行?」 - 當然。 – CommonsWare 2013-04-21 16:01:52

+0

我嘗試過,創造奇蹟,非常感謝! – user2186852 2013-04-21 16:10:32

相關問題