处理具有不同图像大小的ImageButtons

时间:2012-11-09 19:35:49

标签: android android-layout imagebutton

我的布局包含3个ImageButtons,垂直排列在LinearLayout

现在我希望它们每个都具有相同的高度,并且一起填充设备的屏幕高度。

使用属性android:layout_weight="1"正常工作。但是,如果一个ImageButton的图像太大,它将无法工作(此按钮高于其他按钮),尽管设置为android:scaleType="center_inside"

任何建议/伎俩? 如果您需要任何代码,请告诉我们。但是没有什么特别的。

1 个答案:

答案 0 :(得分:1)

如果你正确地给予了权重,那么它应该起作用。图像的大小无关紧要。使用权重时要记住的一件事是,您给予权重(高度/宽度)的属性应在xml中赋值“0dp”,然后权重才能正常工作。这是示例代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:gravity="center"
android:weightSum="3">

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:src="@drawable/drawable1"
    android:layout_weight="1" 
    android:scaleType="centerInside"
    />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:src="@drawable/drawable2"
    android:scaleType="fitXY" />

<ImageView
    android:id="@+id/imageView3"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:src="@drawable/drawable3"
    android:scaleType="fitXY" />

</LinearLayout>

只需使用此xml并根据您的需要替换drawable。如果有任何问题,请告诉我。