【问题标题】:Android: How to allow orientations based on deviceAndroid:如何允许基于设备的方向
【发布时间】:2011-04-03 19:07:46
【问题描述】:

我正在开发一个 Android 应用程序,我希望支持所有设备尺寸,从手机到全尺寸平板电脑。我想将应用程序限制为仅在较小的设备上使用纵向,并允许在设备较大时在横向使用不同的、对大屏幕更友好的 UI。到目前为止,我无法找到任何方式,更不用说优雅的方式来限制活动以允许基于设备屏幕尺寸的方向。

例如:运行应用程序的智能手机只允许使用 layout-small 和 layout-normal 中的布局资源,完全不允许使用横屏。更大的平板设备可以使用对大屏幕更友好的 UI,并且可以在纵向和横向中使用,并且每个方向都有独特的 UI。

任何提示将不胜感激。

【问题讨论】:

    标签: android layout orientation device screen-size


    【解决方案1】:

    要强制 Activity 进入纵向模式,您可以在 Android Manifest 中设置它,但这样您就无法为较小的屏幕指定它,我相信这是不可能的。此外,您应该小心这样做,因为某些手机是为横向模式制造的。 http://developer.android.com/guide/topics/manifest/activity-element.html#screen

    要为特定屏幕尺寸提供替代布局,您可以通过在文件夹名称中添加参数来实现

    /res/layout-small/main.xml
    /res/layout-normal/main.xml
    /res/layout-large/main.xml
    /res/layout-xlarge/main.xml
    

    http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

    【讨论】:

      【解决方案2】:

      您可以尝试使用以下方式以编程方式获取屏幕尺寸:

      int width = display.getWidth();
      int height = display.getHeight();
      

      然后根据屏幕大小是否在特定边界之间来允许/禁止?

      【讨论】:

      • display.getWidth() 已弃用。请改用 displayMetrics.widthPixels。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      相关资源
      最近更新 更多