我有一个应用程序可以在屏幕上绘制一些形状。问题是抗锯齿功能不适用于我使用路径绘制的形状,但仅在缩放(缩放)之后才起作用。 另一方面,绘制圆圈没有问题(即使在缩放之后)。缩放效果很好,只是缩放后形状不清晰。
...
// Matrix m = new Matrix();
// m.setValues(createMatrix());
// canvas.concat(m);
//or
canvas.scale(6.0f, 6.0f); // the upper code is used on real, but the same problem occures with this call
...
RectF oval = new RectF(x, y, x + width, y + height);
currentPaint.setAntiAlias( true );
canvas.drawOval(oval, currentPaint);
currentPaint.setAntiAlias( true );
canvas.drawPath(getPathOfShape(), currentPaint);
有人可以帮我解决这个问题吗?
最佳答案
我找到了问题的原因。问题是,如果启用了硬件加速,Android 不支持此功能。禁用硬件加速后,缩放工作正常。
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
有关此内容的更多信息,请参阅 Google 网站:
http://developer.android.com/guide/topics/graphics/hardware-accel.html
关于java - 在 Canvas 上缩放后路径上的抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26975967/