1

我有RelativeLayout應該支持多種屏幕。問題是:這種方法不好嗎?因爲基本上我指定了框的寬度和大小,所以我將不得不爲多個屏幕大小更改這些數字(small,large,xlarge),並且它們仍然不適合。有更好的方法嗎?這是我的佈局:RelativeLayout支持多種屏幕尺寸

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/root" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background" > 

    <RelativeLayout 
     android:id="@+id/wrappedBoxes" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:gravity="center" > 

     <ImageView 
      android:id="@+id/imgLeft" 
      android:layout_width="50dp" 
      android:layout_height="60dp" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:paddingRight="7dp" 
      android:scaleType="fitXY" /> 

     <TextView 
      android:id="@+id/txtBlock1" 
      android:layout_width="114dp" 
      android:layout_height="71dp" 
      android:layout_toRightOf="@+id/imgLeft" 
      android:background="#30869C" 
      android:clickable="true" 
      android:gravity="bottom" 
      android:padding="1dp" 
      android:textColor="#fff" > 
     </TextView> 

     <RelativeLayout 
      android:id="@+id/txtBlock2" 
      android:layout_width="114dp" 
      android:layout_height="71dp" 
      android:layout_marginLeft="7dp" 
      android:layout_toRightOf="@+id/txtBlock1" 
      android:background="#30869C" 
      android:clickable="true" 
      android:orientation="vertical" 
      android:padding="1dp" > 

      <TextView 
       android:id="@+id/recKF1Block" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="top" 
       android:paddingTop="0dp" 
       android:textColor="#fff" /> 

      <TextView 
       android:id="@+id/recKF1BlockOutOfAmount" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/recKF1Block" 
       android:text="dummy of dummy" /> 
     </RelativeLayout> 

     <TextView 
      android:id="@+id/txt9876Block" 
      android:layout_width="114dp" 
      android:layout_height="71dp" 
      android:layout_marginLeft="7dp" 
      android:layout_toRightOf="@+id/txtBlock2" 
      android:clickable="true" 
      android:gravity="bottom" 
      android:height="71dp" 
      android:padding="1dp" 
      android:textColor="#fff" > 
     </TextView> 

     <TextView 
      android:id="@+id/txt343477Block" 
      android:layout_width="114dp" 
      android:layout_height="71dp" 
      android:layout_marginLeft="7dp" 
      android:layout_toRightOf="@+id/txt9876Block" 
      android:background="#30869C" 
      android:gravity="top" 
      android:padding="1dp" 
      android:text="" 
      android:textColor="#fff" > 
     </TextView> 

     <TextView 
      android:id="@+id/txt111Block" 
      android:layout_width="114dp" 
      android:layout_height="71dp" 
      android:layout_alignRight="@+id/txtBlock1" 
      android:layout_below="@+id/txtBlock1" 
      android:layout_marginTop="7dp" 
      android:background="#30869C" 
      android:clickable="true" 
      android:gravity="bottom" 
      android:padding="1dp" 
      android:textColor="#fff" > 
     </TextView> 

     <TextView 
      android:id="@+id/txtS555Sett" 
      android:layout_width="114dp" 
      android:layout_height="71dp" 
      android:layout_alignLeft="@+id/txtBlock2" 
      android:layout_below="@+id/txtBlock2" 
      android:layout_marginTop="7dp" 
      android:layout_toRightOf="@+id/txt111Block" 
      android:background="#30869C" 
      android:gravity="bottom" 
      android:padding="1dp" 
      android:textColor="#fff" > 
     </TextView> 

     <TextView 
      android:id="@+id/txtMm22" 
      android:layout_width="237dp" 
      android:layout_height="72dp" 
      android:layout_alignLeft="@+id/txt9876Block" 
      android:layout_below="@+id/txt9876Block" 
      android:layout_marginTop="7dp" 
      android:layout_toRightOf="@+id/txtS555Sett" 
      android:adjustViewBounds="true" 
      android:textColor="#000" > 
     </TextView> 

     <TextView 
      android:id="@+id/imgW999" 
      android:layout_width="114dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/txtMm22" 
      android:layout_alignTop="@+id/txt343477Block" 
      android:layout_marginLeft="7dp" 
      android:layout_toRightOf="@+id/txt343477Block" 
      android:gravity="bottom" 
      android:textColor="#fff" > 
     </TextView> 

     <ImageView 
      android:id="@+id/imgRi8977" 
      android:layout_width="50dp" 
      android:layout_height="60dp" 
      android:layout_centerVertical="true" 
      android:layout_toRightOf="@+id/imgW999" 
      android:scaleType="fitXY" /> 
    </RelativeLayout> 

</RelativeLayout> 

回答

2

而不是硬編碼的值,使用dimen文件這個pupose。 爲值指定不同的文件夾,如值大等,並創建維度文件並根據屏幕大小放置特定值。它應該幫助你。

0

嘿,請創建這樣一個多屏幕尺寸佈局的文件夾,這個

佈局小,佈局大,佈局XLARGE所以ü複製您的佈局XML文件中,這些文件夾,現在ü可以編輯指定盒子的寬度和大小。