Imageview保持纵横比,填充宽度和高度

时间:2016-11-07 09:11:46

标签: android imageview

我在为我的应用设置背景图片时遇到问题。我有两个图像视图的线性布局。一个带有徽标和重量1,一个带有背景图像,带有重量3.我希望第二个水平居中,并使侧面垂直方向裁剪,底部水平方向裁剪。 CENTER_CROP几乎完成了这项工作,但我想要绘制我的图像的顶部。我不在乎底部。

在此配置中,垂直方向是完美的,但水平切割图像的顶部,我希望顶部始终可见。底部可以裁剪

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_margin="50dp"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/masters_logo"
        android:id="@+id/imageView" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:scaleType="centerCrop"
        android:src="@drawable/masters_login_background"/>

</LinearLayout>

这就是我想要实现的目标。

垂直方向: vertical

水平方向: horizontal

2 个答案:

答案 0 :(得分:0)

如果要在登录屏幕中设置背景,则应将android:background="@drawable/masters_login_background"属性添加到根LinearLayout。 否则,您应该使用RelativeLayout作为根元素,并在其中添加ImageView作为顶部元素,如下所示:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/masters_login_background"/>

        <!-- other code here -->

</RelativeLayout>

答案 1 :(得分:0)

我必须编辑ans,因为我错误地理解了你的问题。请使用以下代码。这将把你的bg img放在bg img。

上方的背景和徽标中
 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

 <ImageView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="3"
            android:scaleType="centerCrop"
            android:src="@drawable/masters_login_background"/>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:layout_margin="50dp"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/masters_logo"
            android:id="@+id/imageView" />



    </LinearLayout>