适合ImageView

时间:2018-02-02 21:09:45

标签: java android xml android-layout

我有两排"按钮"它由LinearLayoutImageView的垂直TextView组成。我现在遇到的问题是尝试设置ImageView宽高比而不对其尺寸进行硬编码。

我已经尝试过使用布局权重,但它仍然会强制TextView被部分切断。

我拥有的xml结构是2个水平LinearLayouts,每个按钮如上所述。

我已经包含了我的问题图片。您可以看到第一个按钮强制TextView超出范围。您看到的其余按钮都是硬编码尺寸,但我不想这样做,因为较小的屏幕尺寸不会起作用。 enter image description here

这是我的一个按钮的布局:

<LinearLayout
        android:gravity="center_horizontal"
        android:layout_weight="1"
        android:padding="5dp"
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/setting_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:background="@null"
            android:clickable="true"
            android:onClick="openSettings"
            android:src="@drawable/menu" />

        <TextView
            android:id="@+id/setting_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Settings"
            android:textAlignment="center"
            android:textColor="@android:color/white"
            android:autoSizeTextType="uniform" />
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

尝试使用尺寸较小的图像。

答案 1 :(得分:0)

尝试使用RelativeLayout并将TextView设置为图像的锚点:

<RelativeLayout
    android:layout_width="0dip"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:padding="5dp">

   <TextView
        android:id="@+id/setting_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:text="Settings"
        android:textAlignment="center"
        android:textColor="@android:color/white"
        android:autoSizeTextType="uniform" />

    <ImageView
        android:id="@+id/setting_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_above="@id/setting_text"
        android:scaleType="centerInside"
        android:adjustViewBounds="true"
        android:background="@null"
        android:clickable="true"
        android:onClick="openSettings"
        android:src="@drawable/menu" />

</RelativeLayout>