Android布局高度和宽度

时间:2014-01-21 03:00:09

标签: android xml layout

我使用match_parent作为身高,但我不想使用wrap_contentfill_parent作为宽度。我想将高度设置为与宽度相同。我怎么能在layout.xml

中做到这一点

1 个答案:

答案 0 :(得分:0)

您的问题在很大程度上取决于您是肖像还是风景。

如果您尝试使布局宽度与纵向高度相匹配,那么您的布局将离开屏幕,这在xml中似乎不可能。反之亦然,将高度与横向宽度相匹配也会使布局脱离屏幕。

如果您尝试使方形布局与屏幕的最小尺寸相同,那么在xml中执行此操作的方法是制作一个方形,透明且大于屏幕尺寸的可绘制形状。然后将drawable设置为relativelayout内的imageview,并将宽度和高度设置为正确的设置(match_parent或wrap_content)。然后根据需要将视图添加到relativelayout并将它们引用到父视图而不是图像,使新视图位于imageview的“顶部”。

在肖像中,以下relativelayout是正方形:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:adjustViewBounds="true"
            android:src="@drawable/square_draw" />

    </RelativeLayout>

</LinearLayout>

在横向中,以下relativelayout是正方形:

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:background="@android:color/white"
       android:orientation="vertical" >

       <RelativeLayout
           android:layout_width="wrap_content"
           android:layout_height="match_parent" >

           <ImageView
               android:layout_width="wrap_content"
               android:layout_height="match_parent"
               android:layout_centerHorizontal="true"
               android:layout_centerVertical="true"
               android:adjustViewBounds="true"
               android:src="@drawable/square_draw" />

       </RelativeLayout>

   </LinearLayout>

另外,请确保adjustViewBounds设置为true。出于某种原因,此解决方案不允许图像长大于屏幕大小,并且由于过度绘制也会使用更多资源。