1

我使用的位图分辨率为 480 x 480。

当我尝试使用以下代码在 onSurfaceChanged 中获取此位图的宽度时。

    public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
             super.onSurfaceChanged(holder, format, width, height);

             bDialBg = BitmapFactory.decodeResource(getResources(), R.drawable.dial_bg);
             scale = ((float) width) / (float) bDialBg.getWidth();
    }

bDialBg.getWidth() 结果应该是 480,因为我的图像是 480x480,而不是结果是 720。

我仔细检查了我正在使用的图像分辨率,我还使用 480 x 480 的 Photoshop 再次调整了图像的大小。但 bDialBg.getWidth() 的结果仍然是 720。

4

1 回答 1

0

几天前我遇到了同样的问题。

解决方案 将图像资源放在“drawable-nodpi”而不是任何其他“drawable”资源目录下。它解决了我的问题。

说明: 主要问题是,我将图像资源放在“可绘制”目录下,它给了我错误的位图宽度信息。有趣的是,当我使用 320x320 模拟器和 480 x 480 模拟器时,它给了我 720 和 1080。

希望解决方案对您有用。

于 2017-04-05T14:57:20.023 回答