【发布时间】:2013-01-18 02:07:06
【问题描述】:
我有一条线应该越长越细。问题是,当像素变薄时,您可以清楚地看到跳跃。有没有办法在 Android 上进行亚像素渲染/抗锯齿?
canvas.drawRect() 采用浮点值,但它忽略了这些值。代码如下:
@Override
protected void onDraw(Canvas canvas) {
float width = getMeasuredWidth() / (float) getMeasuredHeight() * getMinimumHeight();
float left = (getMeasuredWidth() - width) / 2.0f;
canvas.drawRect(left, 0, left + width, getMeasuredHeight(), paint);
super.onDraw(canvas);
}
paint 对象启用了ANTI_ALIAS_FLAG 并包含纯色。
这是默认行:
这是它变得更长更薄的时候。它的侧面应该有一些抗锯齿,虽然使整个过渡看起来更平滑。
【问题讨论】:
-
你试过
setAntiAlias( true )吗?使用setFlags()很容易意外覆盖标志。 -
不,它也不起作用。我没有设置任何其他标志:/
-
可以发截图吗?
-
我已经编辑了我的帖子并添加了截图,谢谢!
-
实际上设置了 strokeWidth 的 drawLine 似乎可以完成这项工作!
标签: android android-canvas subpixel