我用的是安卓系统android.graphics.Canvas http://developer.android.com/reference/android/graphics/Canvas.html class 画一个戒指 http://code.google.com/p/publicobject/source/browse/shush/src/com/publicobject/shush/ClockSlider.java。我的 onDraw 方法会剪切画布,为内圆打一个孔,然后在孔上绘制完整的外圆:
clip = new Path();
clip.addRect(outerCircle, Path.Direction.CW);
clip.addOval(innerCircle, Path.Direction.CCW);
canvas.save();
canvas.clipPath(clip);
canvas.drawOval(outerCircle, lightGrey);
canvas.restore();
结果是一个具有漂亮、抗锯齿外边缘和锯齿状、丑陋内边缘的环:
如何对内边缘进行抗锯齿处理?
我不想通过在中间画一个灰色圆圈来作弊,因为对话框稍微透明。 (这种透明度在其他背景上并不那么微妙。)
据我所知,你不能对区域进行抗锯齿剪辑。
我建议改用位图遮罩。将粉色、白色和浅灰色前景渲染到一个位图,将外/内圆蒙版(灰度 Alpha 通道)渲染到另一位图,然后使用Paint.setXfermode
使用蒙版作为其 Alpha 通道来渲染前景位图。
可以在以下位置找到一个示例ApiDemos
源代码here http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)