我使用的位图分辨率是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。
答案 0 :(得分:0)
前几天我遇到了同样的问题。
<强>解决方案强> 将图像资源放在&#34; drawable-nodpi&#34;而不是任何其他&#34; drawable&#34;资源目录。它解决了我的问题。
<强>说明:强> 主要的问题是,我把图像资源放在&#34; drawable&#34;目录,它给了我错误的位图宽度信息。有趣的是,当我使用320x320模拟器时,它给了我720,而480 x 480模拟器则是1080。
希望解决方案适合您。