java - 在 Canvas 上缩放后路径上的抗锯齿

标签 java android android-canvas

我有一个应用程序可以在屏幕上绘制一些形状。问题是抗锯齿功能不适用于我使用路径绘制的形状,但仅在缩放(缩放)之后才起作用。 另一方面,绘制圆圈没有问题(即使在缩放之后)。缩放效果很好,只是缩放后形状不清晰。

...
// 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/

相关文章:

java - java编译简单hasse算法程序时出现非法字符错误

java - 如何动态更改ListView中项目的大小?

android - cordova 构建 android 在 :app:mergeReleaseResources step with "Daemon startup failed" message 上失败

android - Canvas 上字符串的简单淡出动画,android

java - Android Wear 背景图像未绘制

android - 将 Canvas 大小设置为与位图图像相同的大小

java - GUI 类似于 JAVA 中的 Visual Studio 安装程序

java - 无法让简单的 RS Web 服务与 Eclipse Mars 一起使用

java - 如何在窗口关闭或应用程序重新运行时删除 servlet 中的 cookie

android - 哪里可以找到Android的原始资源图片