【发布时间】:2010-12-23 10:04:16
【问题描述】:
我有一张 800 x 300 的图像,我知道这是我的测试平台分辨率的宽度(HTC Desire 为 800x480)。当我尝试将此图像绘制到屏幕上时,它会奇怪地缩放。它溢出屏幕的左侧并填充几乎所有垂直方向。
我正在使用这样的代码:
canvas.drawBitmap(screen[1], new Rect(0,0,800,300), new Rect(0,0,800,300), null);
由于某种原因
width_x = canvas.getWidth();
width_y = canvas.getHeight();
报告我的分辨率为 533 x 320。现在我假设这是 expletive-deleted android 使用的迷人缩放系统,因此应用在所有手机上的大小都相同,但我想忽略这一点。我正在编写一个游戏,所以想自己处理缩放和定位 - 例如,如果可用的话,使用更多的屏幕空间。最佳 android 实践可能适用于基于图标的应用程序,但我想绘制到绝对像素位置,并获取屏幕的绝对分辨率信息。
因此我的问题是——这绝对不可能吗?如果它是完全禁忌的,因为 android 有一个简单而有效的系统来执行此操作,那么我很想知道它是什么。 dpi 与我的游戏设计无关(就像这是一个 pc 游戏一样,它是无关紧要的)
除非我以某种方式指定分辨率,否则也许我的屏幕实际上是 533 x 320?我尝试使用宽度和高度的缩放值,并且图像在屏幕上的大小大致正确,但由于发生了某种缩放,所以边缘呈锯齿状。因此,我无法访问我的屏幕能够显示的所有像素。
为了缩放它,我使用了类似的东西
canvas.drawBitmap(screen[1], new Rect(0,0,800,300), new Rect((int)(0.0f),(int)(0.0f),(int)(533.0f),(int) (187.5f)),空); // 刚刚输入用于测试的数字 - 比率相当于报告的屏幕分辨率。看起来很可怕
非常感谢任何帮助。
干杯,
罗宾。
【问题讨论】: