6
想象一下,我有一个矩形图像。我怎么能创造出像下一个样式?如何从图像创建一个圆圈clippath?
我的意思是,裁剪图像成一个圆圈,添加边框,阴影和毛/光泽效果。到目前为止,我只尝试过这段代码来裁剪图像:Cropping circular area from bitmap in Android,但仅此而已。我不知道如何去做Android中的其他组件。
想象一下,我有一个矩形图像。我怎么能创造出像下一个样式?如何从图像创建一个圆圈clippath?
我的意思是,裁剪图像成一个圆圈,添加边框,阴影和毛/光泽效果。到目前为止,我只尝试过这段代码来裁剪图像: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
,并且还需要剪裁光泽。您可以通过两种方式来实现:
Bitmap
,这是什么,我会建议,只需将油漆的Xfermode
到new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
。Canvas.clipPath()
即可设置圆形剪辑。请注意,这仅适用于Android 4.3以上的硬件加速。
我发布了一个圆角实现,希望它对你有所帮助,http://stackoverflow.com/a/19858771/1294681 – VinceStyling