安卓 ImageView 缩放类型 centerCrop

4
我正在Android上创建一个活动。我想在其中显示一个背景图片。我在主RelativeLayout中放置了一个ImageView。
<RelativeLayout
    android:id="@+id/relativeLayoutMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/bgImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:src="@drawable/bg4"
        android:scaleType="centerCrop" />
</RelativeLayout>

它呈现出这样的视图。

enter image description here

我需要创建像这样的视图 enter image description here

如何做到这一点?


将高度和宽度更改为自适应内容。 - Alex Chengalan
4个回答

8
尝试设置ImageView属性ScaleType=fitEnd

1
使用此代码,它将给出您想要的输出。
代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:id="@+id/relativeLayoutMain"
        android:layout_width="150dp"
        android:background="@android:color/background_dark"
        android:layout_height="150dp" >

        <ImageView
            android:id="@+id/bgImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:scaleType="centerCrop"
            android:src="@drawable/ic_launcher" />
    </RelativeLayout>

</RelativeLayout>

如果您将ImageView的宽度设置为fill parent,则它将根据主容器占用整个空间。 祝好运。

0

RelativeLayout中设置android:background="@drawable/bg4",如下所示:

整个XML应该看起来像这样:

<RelativeLayout
    android:id="@+id/relativeLayoutMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:background="@drawable/bg4
    android:orientation="vertical" >
</RelativeLayout>

那会适合整个屏幕,但不是 OP 想要的。 - Androiderson
据我所知,RelativeLayout 的大小对应于屏幕大小 - 它在宽度和高度属性上具有 match_parent - g00dy

0

首先,我认为xml中有几个问题:

RelativeLayout不使用方向,您应该删除它

这是您的完整xml文件吗?如果是,则RelativeLayout中的alignParentLeft不起作用,因为这是您在父级为RelativeLayout时使用的属性。

fill_parent是match_parent的弃用名称,您应该使用match_parent。

我还相信您拥有的代码会将图像居中放置在屏幕上,将任何太大的东西均匀地分布在两侧,而不是您所说的那样。

如果您只想要一个背景,可以在RelativeLayout中使用android:background="@drawable/bg4"

编辑:将ImageView的layoutparams更改为wrap_content,包括高度和宽度,并完全删除scaleType,可能会使其像您希望的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接