设置画布/ surfaceview的屏幕分辨率

时间:2012-07-25 00:00:25

标签: java android

我正在尝试为Android中的手机应用程序创建动画,并创建了320pix高的图像。但当他出现在我的Galaxy S3上的0,0位置时,他有点小......(肖像模式和风景)。我宁愿不为这么高的分辨率创建大图像,所以有没有办法将屏幕分辨率设置为640x480或1024x768?它似乎是目前最高分辨率。

我是Java和Android的新手。 (.Net背景)。我正在使用Canvas和SurfaceView。我希望有一种SetResolution类型的方法......希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

您无法轻松更改屏幕分辨率(如果您正在尝试这样做)。

因此,您需要创建更大的图片,或者将其缩放到所需的屏幕尺寸。

你应该熟悉Android上的所有密度和分辨率。我强烈建议您阅读Supporting Multiple Screen Sizes上的Android开发者文档。它确实包含了很多关于该主题的有用信息。

它还可以帮助您了解Android如何为您调整图像大小。

简而言之,有关如何自行完成的一些信息:

您可以在SurfaceHolder.Callback中的SurfaceHolder次使用中添加SurfaceView。当屏幕分辨率发生变化时,此回调函数会调用method。您可以创建一个静态类,您将传递新的屏幕大小。这个类可以计算屏幕的比例,你可以假设你总是使用800x480屏幕(或任何你喜欢的)。您使用double MyCoord.x(int)之类的方法。您在假定的800x480屏幕内传递x坐标 - 该方法根据您从SurfaceHolder.Callback传递给静态类的大小返回屏幕上的实际坐标。

这将是你有一种可能性。要查找更详细的解释和更多可能性,您应该阅读开发人员文档,我认为这些文档在大多数主题上都有很好的例子:)