首页 > 解决方案 > 如何为 ViewPager2 设置背景以使图像仅在左侧具有圆角?

问题描述

我当前的实现是创建一个 ImageView 兄弟元素。如果我使用除 centerCrop 以外的任何保持纵横比的scaleType,则图像仅部分覆盖 ViewPager2 ,这不是我想要的。

(我希望图像保持它的纵横比,填充ViewPager2,同时在左侧也有圆角

如果我将 scaleType 设置为“centerCrop”,则 ViewPager2 完全被图像覆盖,但左侧的圆角消失了。

...
        <androidx.viewpager2.widget.ViewPager2
            android:id="@+id/homeViewPager"
            android:layout_width="975dp"
            android:layout_height="match_parent"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

        <ImageView
            android:layout_width="975dp"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:background="@drawable/rounded_corners_left_only"
            android:src="@drawable/grey_hexagon_tiles"
            android:scaleType="centerCrop"
            />
...

rounded_corners_left_only.xml

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/concierge_background_color"/>
    <corners
        android:topLeftRadius="20dp"
        android:bottomLeftRadius="20dp"
        />
</shape>

标签: androidimageviewandroid-drawablexml-drawable

解决方案


推荐阅读