绘制到SurfaceView的分辨率很低

时间:2014-01-10 23:52:09

标签: android canvas

我一直在用这个撕掉我的头发。我正在尝试制作一个Pong应用程序(因为我们需要另外一个,不是吗?),其中一切看起来都是矩​​形和复古的。由于矩形化,在我决定添加当前分数的文本通知之前,我设法进入应用程序的开发阶段。这样做后,我注意到画布(或至少是文本)的绘制分辨率低于我的设备(Nexus 4)的原始分辨率。

我尝试过使用反别名标志,虽然这样可以让文本看起来更平滑,但我仍然可以看到它没有那么清晰。为了有点隔离问题,我尝试在画布上绘制一些测试圆(一个有抗锯齿,一个没有)。瞧,圈子也是低分辨率。

The offending text and circles

据我所知,我已正确实施了表面视图。可以给出所需的任何代码部分。

感谢。

以下是文本样式的代码以及文本的绘图:

textStyle = new Paint(Paint.LINEAR_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
textStyle.setColor(0xffffffff);
textStyle.setAntiAlias(true);
textStyle.setSubpixelText(true);

// draw from the bottom left up (lowest most recent)
Rect textBoundingRect = new Rect();
textStyle.getTextBounds(message, 0, message.length(), textBoundingRect);
// draw the text at the bottom of the screen
int top = (int) Math.round((c.getHeight() - (textBoundingRect.height() + 10) * i) );

// c is just the canvas that was returned from locking
c.drawText(m.getMessage(), 10, top, textStyle);

1 个答案:

答案 0 :(得分:0)

我设法通过将SurfaceView放在父FrameLayout中来解决这个问题。