在多个屏幕上的同一位置显示图像| Android的

时间:2011-01-04 12:23:39

标签: android screen resolutions drawbitmap

我正在创建一个全屏游戏。我正在使用图像作为背景,我在它上面绘制图像。背景图像在所有设备中看起来都很棒,但我无法在所有设备上的同一位置绘制叠加图像。

例如,如果我使用

canvas.drawBitmap(overlay, 365, 85, paint);

对于宽度为854像素的手机,它会完美对齐图像。但是任何低于它的东西都会被推向右边。

我试过玩耍,但我似乎无法弄明白。有什么地方可以确保他们的物品在所有分辨率上正确对齐吗?

2 个答案:

答案 0 :(得分:1)

如果您想这样做,您可能需要根据屏幕尺寸计算位置。

您可以使用以下内容找到这些:

   DisplayMetrics dm = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(dm);
   wPix = dm.widthPixels;
   hPix = dm.heightPixels;

答案 1 :(得分:1)

我猜你的目标是1.6或更高。您的背景在每台设备上看起来都不错的原因是因为Android在解码时会自动将资源调整到目标屏幕密度。您可以通过将资源放在“drawable-nodpi”中来防止这种情况(您必须创建此目录),或者将相应的选项传递给解码位图函数(请查看文档。)如果您这样做,那么,我需要手动缩放所有位图。其他两个答案都有正确的想法,抓住你的屏幕尺寸并计算所有像素值。永远不要使用常数。