想象一下,我有一个矩形图像。我怎样才能创造出下一个风格?
我的意思是,将图像裁剪成一个圆圈,添加边框、阴影和粗糙/光泽效果。到目前为止,我只尝试过这段代码来裁剪图像:从 Android 中的位图裁剪圆形区域,仅此而已。我不知道如何在 Android 中完成剩余的组件。
想象一下,我有一个矩形图像。我怎样才能创造出下一个风格?
我的意思是,将图像裁剪成一个圆圈,添加边框、阴影和粗糙/光泽效果。到目前为止,我只尝试过这段代码来裁剪图像:从 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
在油漆上使用着色器,并且还需要剪切光泽。您可以通过两种方式做到这一点:
Bitmap
中,这是我建议的,只需将绘制设置Xfermode
为 a new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
。Canvas.clipPath()
设置圆形剪辑。请注意,这仅适用于 Android 4.3 的硬件加速。