2012-03-04 57 views
0

我花了很長時間處理佈局問題和屏幕尺寸。我已經通過Android文件在這裏,這有助於閱讀和非常有意義: http://developer.android.com/guide/practices/screens_support.htmlAndroid屏幕尺寸 - 佈局問題。可能只是拉伸而不是定義4個佈局?

所以,現在我有我的應用程序恰好顯示在不同屏幕尺寸的大小相同,因爲所有的整個使用DIP我的元素(的密度獨立像素)。然而,我有兩臺設備在我面前,一臺比另一臺大,所以這意味着在較大屏幕尺寸(Sensation XE)的底部有一些空白空間,而不是稍微小一點的屏幕尺寸(Desire Z )。

讀取Android文檔時,一般的解決方案是爲具有不同數量DIP的xlarge,large,normal和small screen size創建佈局。

這很棒,但是我有非常複雜的佈局(很多自定義視圖,很多按鈕,3個文本視圖,很多圖片都是獨立的,因此它們可以點亮),但是要做很多工作重新創建這些佈局。

但是,如果佈局被拉伸的話,佈局會好的。如果它看起來像Desire Z那樣,並且實際上只是將所有東西拉伸以適應更大的屏幕,那麼在這裏拉伸應該不是一個大問題。

我的問題是,有沒有辦法做到這一點,而不必重新創建佈局4次? 是的,我意識到我可以複製粘貼大部分,但它將是非常方便的,只是拉伸我有。

我在平板設備上進行了測試,結果很好,但一切都很小,並沒有填滿屏幕。我在不同的文件夾中有不同大小的圖像(xhdpi到ldpi),所以它選取正確的圖像不應該是一個問題。

謝謝,任何幫助,非常感謝。

+0

是,一般可以舒展的東西,以適應使用的Android FILL_PARENT佈局:layout_width和/或Android:layout_height上的某些部件。您也可以通過適當地爲LinearLayout中的一系列小部件設置layout_weight來按比例縮放。如何做到這一點只取決於你想做什麼,並且很難在抽象中回答。 如果您有關於如何做某些事情的示例和問題,那可能更容易回答。 – 2012-03-04 01:35:25

+0

謝謝Brian。我瞭解fill_parent和layout_width/height,但我嘗試使用的佈局是相對佈局,其中沒有任何元素可以真正使用權重或fill_parent。由於它是大學項目的一部分,我無法真正地發佈代碼,所以這是我需要自己做的事情,但只需要指出正確的方向。我認爲你的評論實際上回答了這個問題,使用fill_parent或layout_width/height,但是用相關佈局我不相信這是可能的。我想我必須製作4個xml文檔。 – ThePerson 2012-03-04 12:32:34

+0

@BrianCooley,除非有另一種方式,隨意張貼作爲答案,我會接受。它相信它是正確的。 – ThePerson 2012-03-04 12:33:15

回答

0

是的,一般來說,您可以使用某些小部件上的android:layout_width和/或android:layout_height的fill_parent來適應您的佈局。您也可以通過適當地爲LinearLayout中的一系列小部件設置layout_weight來按比例縮放。如何做到這一點只取決於你想做什麼,並且很難在抽象中回答。如果你有一個關於如何做某些事情的例子和問題,那可能更容易回答。

下面是一個使用FILL_PARENT來處理不同的屏幕尺寸一RelativeLayout的示例:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <TextView 
     android:id="@+id/first" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="#ff880000" 
     android:text="Some text" /> 
    <TextView 
     android:id="@+id/second" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@id/first" 
     android:layout_toRightOf="@id/first" 
     android:background="#ff008800" 
     android:text = "More text" /> 
    <TextView 
     android:id="@+id/third" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/first" 
     android:background="#ff000088" 
     android:text="Even more text" /> 
    <TextView 
     android:id="@+id/fourth" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/third" 
     android:background="#ff008888" 
     android:text="The last text" /> 
    </RelativeLayout>