想象一下,我有一个矩形图像。我怎么能创建像下一个样式的样式?
我的意思是,将图像裁剪成圆圈,添加边框,阴影和粗糙/闪耀效果。到目前为止,我只尝试使用此代码段来裁剪图片:Cropping circular area from bitmap in Android但仅此而已。我不知道如何在Android中执行其余组件。
答案 0 :(得分:16)
实现此效果的简便方法是使用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
设置为new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
。Canvas.clipPath()
设置圆形剪辑即可。请注意,这仅适用于Android 4.3的硬件加速。