我使用match_parent
作为身高,但我不想使用wrap_content
或fill_parent
作为宽度。我想将高度设置为与宽度相同。我怎么能在layout.xml
?
答案 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。出于某种原因,此解决方案不允许图像长大于屏幕大小,并且由于过度绘制也会使用更多资源。