【问题标题】:How to make Android applications compatible with different screen resolutions?如何让安卓应用兼容不同的屏幕分辨率?
【发布时间】:2009-12-23 09:29:07
【问题描述】:

我们如何针对不同 Android 设备上的不同屏幕调整应用程序的大小?

【问题讨论】:

标签: android


【解决方案1】:

如果您希望您的布局在不同分辨率的屏幕上工作,您应该使用dip 作为单位来调整它们的大小。例如:

android:layout_marginRight="10dip"

dip 代表 Device Independent Pixel,在您的布局中使用这些像素意味着 Android 将根据运行您的应用程序的设备自动缩放您的布局。

您可以在Supporting Multiple Screens page in the Android Developer Documentation 中了解这些内容。该文档还提供了一些其他选项来处理不同的显示,但我认为使用dip 可能是最简单的。

【讨论】:

    【解决方案2】:

    是的,正如 Dave 回答的那样,使用“dip”是最好的方法。

    另外,有些屏幕的高宽比不同,因此仅使用“dip”是不够的。 那么你有2个选择。如果您总是使用带有“填充父级”的 LinearLayout、RelativeLayout 等布局,您会很好,因为屏幕会变大。 但有时你在某物上设置了一个固定的高度,如果你将它部署在 droid 上(例如)它会看起来很短,因为 droid 比 G1/G2/etc 具有更高的高度/宽度比 在这种情况下,您需要使用代码设置高度。

    【讨论】:

    • 当你说“你需要使用代码设置高度”时,你的意思是什么?我问是因为这是我的主要问题。我什么都用过 DIP,但在每一个比 Droid 小的屏幕(hdpi,854x480,长)上,底部都会被切掉。
    【解决方案3】:

    使用以下代码在 logcat 中检查屏幕分辨率

    DisplayMetrics displaymetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    
            height = displaymetrics.heightPixels;
            width = displaymetrics.widthPixels;
    

    如果屏幕尺寸因此显示为 480x569,则只有屏幕最终可能会被切碎。要解决此问题,您必须更改清单文件中的 minSDK 版本号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多