摩托罗拉Xoom是否有绘图错误,还是仅仅是我?

时间:2012-11-26 20:15:28

标签: java android

我开发了一款小游戏,我的一位朋友/同事在他的摩托罗拉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设备上得到了这个): Galaxy SII screenshot

在我朋友的摩托罗拉Xoom,Android 4.1.2上,我得到: Motorola Xoom screenshot

我想要的只是一个尺寸正确,无抗锯齿的矩形。我究竟做错了什么?或者是Xoom?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

你的缩放有一些奇怪的事情。如果我取出canvas.scale()并删除rect中的所有“/ 16.0f”,那么rect看起来很好。有了这些,我可以确认我的xoom显示了朋友的xoom中的奇怪矩形。

因此,您需要找出一种不同的方法来缩放形状。

mPixelsInOneDp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1,
            res.getDisplayMetrics());

我使用“mPixelsInOneDp来确保我的所有测量结果以及在不同设备上的DP中最终没有相同的结果。我没有任何缩放问题,所以我想到最后你需要调整您的号码直到它在xoom上看起来很好。