2013-04-06 55 views
2

我有定位元素的問題。android如何定位元素以支持所有設備

我想要的是這個圖像在所有設備上,不管屏幕尺寸是多少。

enter image description here

我有什麼,這是兩種不同的大小

enter image description hereenter image description here

我希望我的textViews和editTexts維持他們在活動中的視圖位置。

(在ImageView的圖像 '包含圖像綠 - 藍 - 紅 - 黃方'),這是我的layout.xml

 <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical"> 
       <TextView 
         android:layout_height="30dp" 
         android:layout_width="150dp" 
         android:layout_marginTop="60dp" 
         android:layout_marginLeft="100dp" 
         android:textSize="19dp" 
         android:textStyle="bold" 
         android:gravity="center" 
         android:text="@string/login_app_name"> 
       </TextView> 
       <RelativeLayout 
         android:layout_width="fill_parent" 
         android:layout_height="20dp" 
         android:layout_marginTop="128dp" 
         android:gravity="center_vertical"> 
          <TextView 
            android:layout_height="20dp" 
            android:layout_width="100dp" 
            android:layout_marginLeft="35dp" 
            android:textStyle="bold" 
            android:gravity="right|center_vertical" 
            android:text="@string/login_username"> 
          </TextView> 
          <EditText 
            android:layout_height="20dp" 
            android:layout_width="140dp" 
            android:layout_alignParentRight="true" 
            android:layout_marginRight="10dp" 
            android:background="@drawable/login_edit_text"> 
          </EditText> 
       </RelativeLayout> 
       <RelativeLayout 
         android:layout_width="fill_parent" 
         android:layout_height="20dp" 
         android:layout_marginTop="2dp"> 
          <TextView 
            android:layout_height="20dp" 
            android:layout_width="100dp" 
            android:layout_marginLeft="35dp" 
            android:textStyle="bold" 
            android:gravity="right|center_vertical" 
            android:text="@string/login_password"> 
          </TextView> 
          <EditText 
            android:layout_height="20dp" 
            android:layout_width="140dp" 
            android:layout_alignParentRight="true" 
            android:layout_marginRight="10dp" 
            android:background="@drawable/login_edit_text"> 
          </EditText> 
       </RelativeLayout> 

     </LinearLayout> 
    </RelativeLayout> 

我懷疑問題與我用來定位元素的填充和邊距有關。但我找不到任何其他方法。

有沒有一種方法可以讓我的元素爲所有屏幕尺寸保持位置?

回答

0

製作單獨的XML文件在不同的設備和兩個XML的圖像分開放置,以適應不同的標準分辨率。爲兩個XML文件鏈接兩個單獨的類,現在基於屏幕分辨率調用兩個類中的任何一個。你可以得到的屏幕解析度與此代碼:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

final int height = dm.heightPixels; 
final int width = dm.widthPixels; 

使用if-else條件並選擇類意圖

相關問題