基本上,我正在尝试绘制O形。有什么办法(除了与背景色匹配之外),以便可以绘制两个椭圆形,并具有这样的形状,以便画布的中心椭圆在整个活动背景之前都是透明的?
这是我到目前为止的内容:
protected void onDraw(Canvas canvas) {
if(mainTimerAngle - 90 < 0){
mainTimerAngle += 270;
}
canvas.drawArc(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()),
-90, mainTimerAngle-90,true, mainTimerPaint);
canvas.drawOval(new RectF(barWidth, barWidth, canvas.getWidth() - barWidth,
canvas.getHeight() - barWidth), backgroundPaint);
}
是的,您可以使用为内部椭圆设置模式的Paint
实例PorterDuff.Mode.Clear
。
该CLEAR
模式将基本上擦除其绘制的像素。因此,您将需要在专用Bitmap
背景上进行绘制,而不是直接在的背景上进行绘制View
。如果不这样做,您会发现直接擦除背景会导致黑洞。
这里有一些有用资源的链接。他们将为您提供各种模式及其视觉效果的概述。
API演示中还有一些示例代码,您应该可以在Android SDK文件夹中找到这些示例代码。随时注意com.example.android.apis.graphics.Xfermodes
。或者,在此处找到该类的最新源代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句