2012-08-02 98 views
2

所以,我正在考慮使用百分比,例如,在邊際。百分比使用情況如何?

我們可以使用疊加按照dpi大小來分隔我們的佈局,但爲什麼我們不能使用百分比?

類似的東西:

Display display = getWindowManager().getDefaultDisplay(); 

float width = display.getWidth(); 
float height = display.getHeight(); 

//20% of left margin 
float imageMarginLeft = (width * 20)/100; 

,然後將該保證金的形象,或任何元素。

這是不好的?我只想討論一下。

謝謝。

+2

在這裏發表此代碼以供審查:http://codereview.stackexchange.com/ – Nerd 2012-08-02 17:25:17

+0

謝謝,並對錯誤的地方抱歉! – Otuyh 2012-08-02 17:26:46

回答

2

LinearLayout可以通過使用權重來完成百分比。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="100"> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="20" 
     android:text="Button" /> 
</LinearLayout> 

基於權重的佈局妨礙了性能,如果你使用它們中的很多,尤其是當它們嵌套時。以編程方式進行編程也可能會影響佈局時間。

編輯 既然你正在尋找討論,我會建議基於百分比的佈局一般是不好的。問題在於Android的物理屏幕大小差異很大。不可思議屏幕的一半與Galaxy S III屏幕的一半大不相同,這與Nexus 7屏幕的一半大不相同。使用dp單元的好處是它們與物理尺寸有關的東西在屏幕上。它使得按鈕在微小的屏幕上保持微小(並且難以選擇),並且防止它們在大屏幕上變得巨大(並且難看)。

+0

嘿,謝謝你的回答! 即時尋找實際上正是這種方法來設置圖像/按鈕/等的大小,我們有。如果顯示器是480x320,則圖像將基於此尺寸的百分比。 1200x720一樣。但是你告訴我這會影響我的表現,對吧? – Otuyh 2012-08-02 18:35:15