如何在不拉伸的情况下填充背景图像?

时间:2017-05-24 18:00:06

标签: android xml image android-layout

我想从我的图像中获取以下类型的背景:

enter image description here

这是 NOT 重复的问题,因为我尝试过以下解决方案:

1)First one 2)Second 3)third

这些答案建议使用以下图像视图属性:

android:scaleType="..."

我已尝试过每个可用的值。我得到的是:

enter image description here

如果我使用android:scaleType="center",则中心的图片非常小。

以下是此活动的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.admin.georeminder.MainActivity">


<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/view"
    android:src="@mipmap/landscape"
    android:scaleType="centerCrop" />

</RelativeLayout>

那我在这里错过了什么?任何帮助将不胜感激!感谢

编辑

我也试过以下组合:

android:scaleType="fitXY"
android:adjustViewBounds="true"

4 个答案:

答案 0 :(得分:1)

将图像文件放在Res / drawable而不是Res / mipmap中。

Res / mipmap仅适用于应用启动器图标

试试这个:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/view"
    android:src="@drawable/landscape"
    android:scaleType="center" />

答案 1 :(得分:0)

使用fitxy并使用adjustviewbond = true

答案 2 :(得分:0)

在imageview中使用centerCrop和centerInParent设置scaleType

    <ImageView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:scaleType="centerCrop"
    android:id="@+id/view"
    android:src="@mipmap/landscape"       
    />

答案 3 :(得分:0)

您可以使用FrameLayout和ImageView作为背景

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/imgPlaylistItemBg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:maxHeight="0dp"
    android:scaleType="fitXY"
    android:src="@drawable/img_dsh" />

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