繁体   English   中英

android屏幕分辨率和大小

[英]android screen resolutions and sizes

我目前正在开发一个引起我麻烦的android应用程序。 我的应用严重依赖于正确显示在屏幕上的图像。 不幸的是,诸如FWVGA / WVGA分辨率差异854与800之类的问题使我遇到了一些实际问题,这是其他尺寸/密度和分辨率所致。

我不知道我是否只是在这里遗漏了要点,但是我该如何在两种分辨率下正确显示我的应用程序,而又不“挤压”我的图像或砍掉一些给我黑条的东西?

似乎没有一个立即可用的解决方案,在该解决方案中,我只能让它从右侧屏幕的drawable文件夹自动显示不同的图像。

我曾尝试使用displaymetrics,但除非我明确声明它支持所有屏幕尺寸,否则Android OS实际上会对我的应用“说谎”有关当前分辨率。

有人告诉我,有一个简单的解决方案。

我该如何在两种分辨率下正确显示我的应用程序而不会“压扁”我的图像或减少给我黑条等的切割?

恕我直言,您首先需要重新设计GUI:

我的应用严重依赖于正确显示在屏幕上的图像。

恕我直言,这在任何地方都不能很好地工作。 例如,用户可以将Windows(包括浏览器)的大小调整为任何所需的大小。

似乎没有一个立即可用的解决方案,在该解决方案中,我只能让它从右侧屏幕的drawable文件夹自动显示不同的图像。

由于Android设备可以具有任意数量的屏幕尺寸,就像Windows和Web浏览器可以具有任意数量的屏幕尺寸一样。 Android为让你选择基于密度图像(例如, -hdpi )或屏幕大小(例如, -large ),但这些不映射到决议,也不应该。

正如CommonsWare所指出的那样,针对这种情况的最佳选择实际上是重新考虑布局结构。 使用RelativeLayouts和小部件,可能会获得与您当前所获得的结果相似甚至相似的结果。 如果您愿意发布示例,我们可以为您提供建议的方式。

就是说,您的问题的答案是在运行时查询设备的屏幕分辨率(请注意通知栏和标题栏占用的空间-除非您将其主题化为没有标题栏)。 对于每种可能的屏幕分辨率,您将需要不同的图像,并且随着更多设备(尤其是平板电脑)的发布,您将不得不继续为每张不同的图像提供更多的图像和自定义代码。 您会看到为什么这不是理想的情况。

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth = metrics.widthPixels();
int screenHeight = metrics.heightPixels();

然后,您可以将其放入if-then-else块中,确定分辨率,然后相应地设置图像。 我不建议这样做。

在显示和分辨率方面,如果不挤压/拉伸图像或使用信箱,则无法将图像调整为任何高宽比。 我知道这并不能真正回答您的问题,但是,如果您无法从操作系统中获得可靠的屏幕尺寸信息,请尝试选择分辨率最高的图像,然后裁剪分辨率较小的图像。 只要确保边界周围没有有趣的事物即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM