具有相同宽度和高度的视图

时间:2016-11-30 13:42:56

标签: android layout view constraints

有没有一种简单的方法可以在android studio中创建如下所示的xml布局?我是iOS XCode的人,使用比率限制​​就可以做到这一点。

到目前为止,我使用ConstraintLayout和垂直gridlines使用百分比选项。但这只给了我相同的宽度view1和view2,没有高度。

我知道覆盖onMeasure方法解决方案,但我想避免它。

              a
---------------------------
|                         |
|                         |
|                         |
|                         |
|      b           b      |
| ----------- ----------- | 
| |   view1 | |   view2 | |
| |b        | |b        | |
| |         | |         | |
| ----------- ----------- |
---------------------------

b = 50% * a;

1 个答案:

答案 0 :(得分:0)

您可以这样做:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageview1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/imageview2"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content" />

</LinearLayout>

</RelativeLayout>

现在,在您的活动或片段中,您可以使用findViewById();

获得2个观看次数

然后:

    ImageView view_instance1 = (ImageView)findViewById(R.id.imageView1);
ImageView view_instance2 = (ImageView)findViewById(R.id.imageView2);
        LinearLayout.LayoutParams params=(LinearLayout.LayoutParams)view_instance1 .getLayoutParams();
        params.height= params.width;
        view_instance1 .setLayoutParams(params);
        view_instance2 .setLayoutParams(params);