gpt4 book ai didi

android - 如何从图像创建圆形剪辑路径?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:54 26 4
gpt4 key购买 nike

假设我有一个矩形图像。我怎样才能创造出像下一个这样的风格?

enter image description here enter image description here

我的意思是,将图像裁剪成圆形,添加边框、阴影和粗/闪耀效果。到现在为止,我只尝试过这个 fragment 代码来裁剪图像:Cropping circular area from bitmap in Android但仅此而已。我不知道如何在 Android 中完成剩余的组件。

最佳答案

实现此效果的一种简单方法是使用 Canvas.drawCircle()BitmapShader:

BitmapShader s = new BitmapShader(myPhoto, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

Paint p = new Paint();
p.setShader(s);

myCanvas.drawCircle(centerX, centerY, radius, p);

要制作阴影,只需在绘画上调用 Paint.setShadowLayer()(这仅在您将效果绘制到离屏 Bitmap 中或者如果您的 View 使用一个软件层——通过调用 View.setLayerType() - 设置。

可以使用 Paint.Style.STROKE 样式(您可以通过调用 Paint.setStyle() 设置)通过在顶部绘制另一个圆圈来绘制边框.

最后,您可以通过在第一个圆上绘制一个圆、椭圆或 Path 来绘制光泽。您需要在绘画上使用 LinearGradient 着色器,还需要剪切光泽度。您可以通过两种方式执行此操作:

  1. 如果您将整个效果绘制到 Bitmap 中(这是我的建议),只需将绘画的 Xfermode 设置为 new PorterDuffXfermode(PorterDuff.模式.SRC_IN).
  2. 如果您直接在屏幕上绘制效果,您可以简单地使用 Canvas.clipPath() 设置一个圆形剪辑。请注意,这仅适用于 Android 4.3 的硬件加速。

关于android - 如何从图像创建圆形剪辑路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com