将位图设置为背景并裁剪

时间:2018-09-11 11:01:31

标签: android android-layout imageview android-imageview crop

我试图将位图图像设置为FrameLayout的背景。

<FrameLayout
    android:id="@+id/game_list_header"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/background"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"/>

    <LinearLayout
        android:id="@+id/game_list_header_cnt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:id="@+id/game_list_header_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
        <TextView
            android:id="@+id/game_list_header_sub_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />

    </LinearLayout>
</FrameLayout>

此问题是我要设置为背景的图像的高度大于两个TextView的高度,因此game_list_header的高度不适合TextView的高度,但是ImageView高度。

我尝试了不同的方法,例如将位图与gravity=clip_vertical|fill_horizontal一起用作DrawableBitmap,但是即使那样,图像的高度也不适合TextView的高度,导致FrameLayout大于我想要的。

3 个答案:

答案 0 :(得分:1)

FrameLayout 的高度设置为 40dp 。由于您已将FrameLayout的高度设置为 wrap_content ,因此XML也将考虑图像的高度。

答案 1 :(得分:1)

您是否尝试过将图像设置为game_list_header_cnt的背景?

如果这样做没有帮助,您可以简单地使用ConstraintLayout并将imageView的{​​{1}} top_top和机器人{{1}的textView制成}

答案 2 :(得分:1)

layout_height

TextView设置为wrap_content,因此TextView的实际高度由TextView的文本大小确定。

您可以将layout_height中的FrameLayout设置为80dp之类的数字,并将layout_height中的LinearLayout设置为match_parent