我开发了一个小游戏,我的一个朋友/同事在他的摩托罗拉Xoom平板电脑上试用了它,结果发现渲染全搞砸了!我试着简化所有的东西,看看哪里出了问题,我认为摩托罗拉的Xoom在绘图方面有问题。两者使用完全相同的APK,具有完全相同的绘图代码。我有一个自定义视图,现在只是绘制一个黑色矩形,如下所示:
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
canvas.save();
canvas.scale(16.0f, 16.0f);
float lineWidth = 20 / 16.0f;
paint.setAntiAlias(false);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(lineWidth);
paint.setColor(boardColor); // boardColor is just black
canvas.drawRect(100 / 16.0f,
100 / 16.0f,
200 / 16.0f,
200 / 16.0f,
paint);
canvas.restore();
}
在我的Sprint Galaxy SII,Android 4.0.4上,我得到了(我在Galaxy SIII设备上也得到了这个):
在我朋友的摩托罗拉Xoom,Android 4.1.2上,我得到:
所有我想要的是一个大小正确的,非抗锯齿的矩形。我做错了什么?或者是Xoom?
发布于 2012-12-11 04:53:10
发布于 2012-11-27 04:36:52
你的伸缩方式有些奇怪。如果我去掉canvas.scale()并去掉rect中所有的“/16.0f”,那么rect看起来还不错。有了这些,我可以确认我的xoom显示了来自您朋友的xoom的奇怪的矩形。
所以,你需要找出一种不同的方法来缩放形状。
mPixelsInOneDp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1,
res.getDisplayMetrics());
我使用那个"mPixelsInOneDp“来确保我的所有测量结果在不同设备上的DPs是相同的。我在缩放方面没有任何问题,所以我想最后你需要调整你的数字,直到它在xoom上看起来很好。
https://stackoverflow.com/questions/13572423
复制相似问题