如何修剪左下角的图像以在 XML 中的 cardview 中获得这样的半圆形,在底部修剪图像?附上图片

Posted

技术标签:

【中文标题】如何修剪左下角的图像以在 XML 中的 cardview 中获得这样的半圆形,在底部修剪图像?附上图片【英文标题】:How to trim image at the bottom left to get such half rounded shape inside cardview in XML, trimmed image at the bottom? Image attached 【发布时间】:2021-12-12 14:15:08 【问题描述】:

我正在尝试在 cardview 中添加图像,该图像可以从左下角稍微修剪一下,以便可以形成与图像所示相同的半圆形。请帮助我,因为我不知道该怎么做?

【问题讨论】:

我的猜测是,在您的示例中,左下角的蓝色图标实际上包含在图标中的半圆形白色部分。这只是重叠照片 【参考方案1】:

它只是一个带有白色笔划的圆形图像,如您在 this image

你可以使用ShapeableImageView 使您的图像成为圆形并为其添加笔触,您的代码将如下所示

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".MainActivity">
    <!--your main image-->
    <ImageView
        android:id="@+id/imageView"
        android:layout_
        android:layout_
        android:src="@color/black"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <!--your circular image-->
    <com.google.android.material.imageview.ShapeableImageView
        android:layout_
        android:layout_
        android:padding="8dp"
        android:src="@drawable/ic_launcher_background"
        android:layout_marginTop="-40dp"
        android:layout_marginStart="20dp"
        app:layout_constraintStart_toStartOf="@+id/imageView"
        app:layout_constraintTop_toBottomOf="@+id/imageView"
        app:strokeWidth="8dp"
        app:strokeColor="@color/white"
        app:shapeAppearanceOverlay="@style/circleImageViewStyle"/>
</androidx.constraintlayout.widget.ConstraintLayout>

这是circleImageViewStyle,在themes.xml 文件中

    <style name="circleImageViewStyle" >
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">50%</item>
    </style>

上面代码的结果类似于this

【讨论】:

但是如何根据圆形图像调整较大的图像?较大的图像不会与这个圆形图像重叠吗? @AbhasSharma 您可以为此使用约束布局,请参阅演示代码,我编辑了答案,我将约束设置为主图像的开头,并将圆形图像的顶部设置为主图像的底部,并将 marginTop 设置为图像大小的一半,希望此解决方案对您有所帮助 是的,它奏效了。谢谢! 不客气 :)

以上是关于如何修剪左下角的图像以在 XML 中的 cardview 中获得这样的半圆形,在底部修剪图像?附上图片的主要内容,如果未能解决你的问题,请参考以下文章

我应该垂直翻转加载了 stb_image 的图像的线条以在 OpenGL 中使用吗?

XML 绝对布局将图像放在左下角和右下角

将图像修剪为最小的正方形

从图库中获取图像以在片段中的图像视图中设置? [复制]

使用 ffmpeg 修剪 mp3 时如何跳过图像错误

用 PIL 修剪扫描的图像?