我在Nexus 7上运行了我的代码,同时仍安装了Android 4.3。然后我升级到Android 4.4并再次运行我的代码。以下是我对一个奇怪的Canvas.drawArc()/ Path.arcTo()bug(图形故障)的发现......
第一种方法
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//draw Background
canvas.drawRect(mOuterArcRectangle, mBackgroundPaint);
//draw arc
Path path = new Path();
path.arcTo(mInnerArcRectangle, mAngleStart, mSweep);
canvas.drawPath(path, mPaint);
}
国家
mOuterArcRectangle = RectF(0.0, 0.0, 1080.0, 1080.0)
mInnerArcRectangle = RectF(150.0, 150.0, 930.0, 930.0)
mAngleStart = 120
mSweep = 135
导致此结果......
第二种方法
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//draw Background
canvas.drawRect(mOuterArcRectangle, mBackgroundPaint);
//draw arc
canvas.drawArc(mInnerArcRectangle, mAngleStart, mSweep, false, mPaint);
}
国家
mOuterArcRectangle = RectF(0.0, 0.0, 1080.0, 1080.0)
mInnerArcRectangle = RectF(150.0, 150.0, 930.0, 930.0)
mAngleStart = 120
mSweep = 135
导致此结果......
在Android 4.4上 这两种方法都会导致(我认为会成功)
解决方案? 这个问题有解决方法吗?这是一个众所周知的问题吗?
答案 0 :(得分:2)
我只是通过在绘制弧之前将0.5f
添加到扫掠角度来修复它。