位图在Android Watch的WatchFaceService的onSurfaceChanged内显示不同的重新配置

时间:2017-04-05 11:21:23

标签: android wear-os android-wear-2.0

我使用的位图分辨率是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。

1 个答案:

答案 0 :(得分:0)

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

<强>解决方案 将图像资源放在&#34; drawable-nodpi&#34;而不是任何其他&#34; drawable&#34;资源目录。它解决了我的问题。

<强>说明: 主要的问题是,我把图像资源放在&#34; drawable&#34;目录,它给了我错误的位图宽度信息。有趣的是,当我使用320x320模拟器时,它给了我720,而480 x 480模拟器则是1080。

希望解决方案适合您。