将位图设置为背景并裁剪它

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将位图设置为背景并裁剪它相关的知识,希望对你有一定的参考价值。

我正在尝试将位图图像设置为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比我想要的要大。

答案

你试图将图像设置为game_list_header_cnt的背景吗?

如果这没有帮助,你可以简单地使用ConstraintLayoutimageView top_top的顶级textViewbot_bot的机器人textView

另一答案

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

另一答案

layout_heightTextView设置为wrap_content,因此TextView的实际高度由TextView的文本化决定。

你可以设置layout_heightFrameLayout数字,例如80dp,并将layout_heightLinearLayout设置为match_parent

以上是关于将位图设置为背景并裁剪它的主要内容,如果未能解决你的问题,请参考以下文章

Android:从位图裁剪位图并设置为 ImageView src

将位图裁剪为特定的宽度和高度,而不会丢失分辨率

如何在不创建新位图的情况下拥有圆形、中心裁剪的 imageView?

如何裁剪位图并获得图像的下 50%

如何将位图图像横向设置为纵向

ListView 背景图片裁剪