我一直在用这个撕掉我的头发。我正在尝试制作一个Pong应用程序(因为我们需要另外一个,不是吗?),其中一切看起来都是矩形和复古的。由于矩形化,在我决定添加当前分数的文本通知之前,我设法进入应用程序的开发阶段。这样做后,我注意到画布(或至少是文本)的绘制分辨率低于我的设备(Nexus 4)的原始分辨率。
我尝试过使用反别名标志,虽然这样可以让文本看起来更平滑,但我仍然可以看到它没有那么清晰。为了有点隔离问题,我尝试在画布上绘制一些测试圆(一个有抗锯齿,一个没有)。瞧,圈子也是低分辨率。
据我所知,我已正确实施了表面视图。可以给出所需的任何代码部分。
感谢。
以下是文本样式的代码以及文本的绘图:
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);
答案 0 :(得分:0)
我设法通过将SurfaceView放在父FrameLayout中来解决这个问题。