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文件中,这些文件夹,现在ü可以编辑指定盒子的宽度和大小。