使用两个图像视图以横向模式填充宽度

时间:2017-07-31 10:48:06

标签: java android imageview landscape

我有这个rec​​yclerview,背景是用imageviews做的。我在肖像和风景中有这两种情况。如何用新的imageview或相同颜色的东西填充那里的空白区域?

portrait landscape

这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
    android:id="@+id/home_imageview_superbackground"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true" />

<ImageView
    android:id="@+id/home_imageview_background"
    android:contentDescription="Background image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:layout_alignParentEnd="true" />

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

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="casual"
        android:paddingBottom="10dp"
        android:paddingStart="5dp"
        android:paddingTop="10dp"
        android:textAppearance="?attr/textAppearanceListItem"
        android:textColor="@android:color/white"
        android:textSize="40sp" />
</RelativeLayout>

尝试了几种方法,但我还是无法完成这项工作。 @ + id / home_imageview_superbackground这是我想要放在每个背景图像视图左侧的图像视图,以填充景观中的空间。谢谢你的帮助。

4 个答案:

答案 0 :(得分:1)

请尝试这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/home_imageview_superbackground"
        android:layout_width="match_parent"
        android:src="@mipmap/ic_launcher"
        android:scaleType="fitXY"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/home_imageview_background"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:scaleType="fitXY"
        android:contentDescription="Background image" />

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

        <TextView
            android:id="@+id/content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="casual"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"
            android:textAppearance="?attr/textAppearanceListItem"
            android:textColor="@android:color/white"
            android:textSize="40sp" />
    </RelativeLayout>
</RelativeLayout>

你也可以使用android:scaleType =&#34; centerCrop&#34;。

希望这会对你有所帮助。如果你仍然遇到问题,请通知我......

答案 1 :(得分:0)

<ImageView
 android:layout_width="match_parent"
 .... />

您也可以使用scaleType属性

答案 2 :(得分:0)

首先, fill_parent 以前不推荐使用,您应该使用 match_parent 。然后,当您使用ImagesView定义图像在屏幕上的显示方式时,您还必须使用scaleType。在您的情况下,使用scaleType =“fitXY”解决您的问题。

您的代码应如何:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
    android:id="@+id/home_imageview_superbackground"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY"
    android:layout_alignParentStart="true" />

<ImageView
    android:id="@+id/home_imageview_background"
    android:contentDescription="Background image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="fitXY"
    android:adjustViewBounds="true"
    android:layout_alignParentEnd="true" />

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

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="casual"
        android:paddingBottom="10dp"
        android:paddingStart="5dp"
        android:paddingTop="10dp"
        android:textAppearance="?attr/textAppearanceListItem"
        android:textColor="@android:color/white"
        android:textSize="40sp" />
</RelativeLayout>

答案 3 :(得分:0)

试试此代码

<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/your_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:scaleType="fitEnd"
        android:layout_alignParentStart="true"
        android:background="@drawable/green_gradiant"
        android:padding="10dp" />

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="casual"
        android:paddingBottom="10dp"
        android:paddingStart="5dp"
        android:paddingTop="10dp"
        android:text="Hello Three"
        android:textAppearance="?attr/textAppearanceListItem"
        android:textColor="@android:color/white"
        android:textSize="40sp" />
</FrameLayout>

并创建此可绘制文件

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item>
     <shape android:shape="rectangle">
         <gradient android:angle="0"
             android:startColor="#64FFDA"
             android:centerColor="#4464FFDA"
             android:endColor="#0064FFDA"/>
     </shape>
 </item>
</selector>