0

我想我在 Android 开发方面遇到了一个常见问题,但似乎找不到我正在寻找的答案。

如果我在 Photoshop 800x480px (240ppi) 上制作一个画布,并在该画布上制作一个 282 x 121px 的徽标,我无法理解为什么当我显示图像时它会在我的模拟器中以相同的 800x480px 占据屏幕的 3/4。

我用来显示徽标的代码如下

Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo);

//in the onDraw
canvas.drawBitmap(logo, 0, 0, null);

提前致谢!


可能的解决方案

不确定这是否是做事的最佳方式并且是否会获得任何反馈,我遇到了这个解决方案(通常当您已经发布了一个问题 :D 时)是按如下方式对图像进行编码:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;

//Load images
logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo, options);
4

1 回答 1

1

图像可能只占模拟器中屏幕的 3/4,因为预缩放 android 有时会这样做。

查看这篇文章,了解如何处理多种分辨率和屏幕尺寸。

您可以尝试将可绘制对象放入“res/drawable-mdpi/”目录或“res/drawable-ldpi/”以区分中密度和低密度屏幕。另一种选择是将它放在“res/drawable-nodpi/”目录中以防止任何预缩放。我什至在“res/raw”文件夹中放置了一些图像以获得相同的效果。

但是,如果您当前的方法有效,那就去做吧!

于 2011-05-16T22:15:21.187 回答