我在imageview下方有3个按钮,但我希望它们根据屏幕比例/大小自动更改其高度。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main3Activity">
<ImageView
android:id="@+id/imageView"
android:layout_width="144dp"
android:layout_height="133dp"
app:srcCompat="@android:drawable/btn_star_big_on"
tools:layout_editor_absoluteX="133dp"
tools:layout_editor_absoluteY="40dp" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_marginTop="15dp"
android:layout_centerHorizontal="true"
android:layout_below="@id/imageView"
android:text="Button1"
tools:layout_editor_absoluteX="36dp"
tools:layout_editor_absoluteY="184dp" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_marginTop="15dp"
android:layout_centerHorizontal="true"
android:layout_below="@id/button1"
android:text="Button2"
tools:layout_editor_absoluteX="161dp"
tools:layout_editor_absoluteY="260dp" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_marginTop="15dp"
android:layout_centerHorizontal="true"
android:layout_below="@id/button2"
android:text="Button3"
tools:layout_editor_absoluteX="161dp"
tools:layout_editor_absoluteY="340dp" />
</android.support.constraint.ConstraintLayout>
在这里,我给您留下一张关于我想要它的外观的编辑图像:
感谢您的帮助。 (我认为在layout_height中使用match_parent将是解决方案,但我已经尝试过,但我不知道如何使用它)
答案 0 :(得分:1)
如果您想使用LinearLayout
并为所有3个按钮设置相等的权重:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Main3Activity">
<ImageView
android:id="@+id/imageView"
android:layout_width="144dp"
android:layout_height="133dp"
android:layout_gravity="center_horizontal"
app:srcCompat="@android:drawable/btn_star_big_on" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_marginTop="15dp"
android:text="Button1"
android:layout_weight="1" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_marginTop="15dp"
android:text="Button2"
android:layout_weight="1" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_marginTop="15dp"
android:text="Button3"
android:layout_weight="1" />
</LinearLayout>
答案 1 :(得分:0)
您可以使用LinearLayout或TableLayout并将所有按钮的高度设为 match_parent ,然后为所有按钮赋予 weight 属性
android:layout_weight="1"