0

我发现很多人问如何调整图像以适应设备屏幕的问题和答案,我心想——如果我能获得设备分辨率,使用

    Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    int screenWidth = display.getWidth();
    int screenHeight = display.getHeight();

为什么我不能按屏幕的 1/5 来缩放/调整图像大小?这样我就可以做到让我们说 1/5 的空间 2/5 的图像和另外 1/5 的文本,它应该适合所有设备,我在这里错过了什么吗?

还有为什么我会在此代码中收到“已弃用”警告?

对不起我的英语并提前感谢您的帮助

4

2 回答 2

1

在 Android 中,您的应用程序可能不会覆盖整个屏幕。即使您禁用标题栏/状态栏等,您仍然可以拥有特定于设备的 chrome(如 Android 3.0 中的屏幕按钮)。

于 2012-12-30T22:50:08.677 回答
0

为什么我不能按屏幕的 1/5 来缩放/调整图像大小?

你可以,如果你想让你的图像占据屏幕大小的一些相对量,那么这个和使用LinearLayout权重(正如其他人指出的那样)可能是你唯一的选择。请注意,您可能不想在主 UI 线程上进行任何图像缩放,并且您应该尝试尽可能高效地进行。查看一些良好做法的指南

另请注意,屏幕宽度(尤其是屏幕高度)不一定是您的图像和/或 UI 可用的空间量。可能存在强制执行的边距/填充,或存在其他组件;例如动作栏。

还有为什么我会在此代码中收到“已弃用”警告?

请参阅文档以获取Display.getHeight()Display.getWidth()

此方法在 API 级别 13 中已弃用。请getSize(Point)改用。

基本上谷歌已经告诉开发者它可能会在未来的平台版本中停止支持上述方法。因此,您应该尽可能远离它们。大多数开发人员最终会编写自己的辅助方法,该方法在旧平台(本例中为 API 级别 13 之前)和getSize(...)新平台上使用已弃用的方法。您可以将Build.VERSION_CODES用于此目的。

于 2012-12-31T01:29:22.937 回答