缩放背景图像以包装布局的内容

bjg*_*222 39 android background android-linearlayout android-relativelayout android-framelayout

我的布局包含一些文本字段,并且背景图像显示在我的活动顶部.我希望背景图像可以缩放以包装内容(不关心宽高比).但是,图像大于内容,因此布局反而包裹背景图像.这是我的原始代码:

<RelativeLayout 
    android:layout_width="fill_parent"
    android:id="@+id/HeaderList" 
    android:layout_gravity="top"
    android:layout_height="wrap_content" 
    android:background="@drawable/header">
    <TextView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" 
        android:id="@+id/NameText"
        android:text="Jhn Doe" 
        android:textColor="#FFFFFF"
        android:textSize="30sp" 
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" 
        android:paddingLeft="4dp"
        android:paddingTop="4dp" 
    />
    <TextView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" 
        android:textColor="#FFFFFF"
        android:layout_alignParentLeft="true"
        android:id="@+id/HoursText"
        android:text="170 hours" 
        android:textSize="23sp"
        android:layout_below="@+id/NameText" 
        android:paddingLeft="4dp" 
    />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

在搜索了其他一些问题后,我发现了这两个问题:

如何包装内容视图而不是背景可绘制?

缩放Drawable或背景图像?

基于此,我创建了一个带有ImageView的FrameLayout,显示背景.不幸的是,我仍然无法让它工作.我想要的背景图像的高度缩小/扩大W /文观点的大小,但与FrameLayout里,该ImageView的适合的大小的它的父,我无法找到一个办法让母公司适合文本视图布局的大小.这是我更新的代码:

<FrameLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <ImageView android:src="@drawable/header"
        android:layout_width="fill_parent" 
        android:scaleType="fitXY"
        android:layout_height="fill_parent" 
        />
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:id="@+id/HeaderList" 
        android:layout_gravity="top"
        android:layout_height="wrap_content"
        >
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" 
            android:id="@+id/NameText"
            android:text="John Doe" 
            android:textColor="#FFFFFF"
            android:textSize="30sp" 
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true" 
            android:paddingLeft="4dp"
            android:paddingTop="4dp" 
            />
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" 
            android:textColor="#FFFFFF"
            android:layout_alignParentLeft="true" 
            android:id="@+id/HoursText"
            android:text="170 hours" 
            android:textSize="23sp"
            android:layout_below="@+id/NameText" 
            android:paddingLeft="4dp" 
            />
    </RelativeLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

有没有人对如何最好地使图像缩放到某些布局内容的大小有任何建议?我并不关心图像的纵横比,因为它无关紧要,我只是想让它填满背景.

谢谢!

Squ*_*ear 67

我有同样的问题(我认为),我能找到的唯一解决方案是:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <View
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/some_image"
        android:layout_alignTop="@+id/actual_content"
        android:layout_alignBottom="@id/actual_content"
        android:layout_alignLeft="@id/actual_content"
        android:layout_alignRight="@id/actual_content"
        />

    <LinearLayout
        android:id="@id/actual_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        >

       <!-- more stuff ... -->

    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说有一些修改. - 使用ImageView而不是View - 在ImageView中添加了android:scaleType ="fitXY" (12认同)
  • 对于那些不想放松10分钟的人来说,为了引用之后声明的视图,你需要添加一个`@ + id /`实例`@ id /`来创建ID. (4认同)

jso*_*fry 0

我想我过去做过类似的事情,尝试在图像视图中使用重力设置,我认为其中一个应该做你所追求的事情。