0

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

例如,如果我使用

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

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

我试过玩dip,但我似乎无法弄清楚。有什么地方可以确保它们在所有分辨率上都正确排列?

4

2 回答 2

1

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

您可以使用以下方法找到这些:

   DisplayMetrics dm = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(dm);
   wPix = dm.widthPixels;
   hPix = dm.heightPixels;
于 2011-01-04T12:29:09.850 回答
1

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

于 2011-01-04T14:41:19.273 回答