【问题标题】:Configuration qualifers - Multiple screen size配置限定符 - 多种屏幕尺寸
【发布时间】:2017-08-02 01:48:03
【问题描述】:

我正在为智能手机平板电脑和电视创建应用程序。 我正在创建不同的显示器,但我无法区分平板电脑和电视。 我读了https://developer.android.com/guide/practices/screens_support.html

我已经尝试了很多东西,大,xlarge sw720dp,W1024dp .. 但没有任何效果。我使用模拟器。

AndroidTv 1080p API 25,分辨率 1920*1080:xhdpi

Nexus 5 API 24 分辨率 1080*1920:xxhdpi

Nexus 7 1200*1920 xhdpi

感谢您的帮助!

【问题讨论】:

  • 使用-television 在资源方面区分电视和移动设备。见the docs

标签: android android-layout android-screen-support android-screen


【解决方案1】:

你想要的文档在这里:https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

此页面的重要部分是表 2(配置限定符名称)和标题为 Android 如何找到最佳匹配资源的部分。

阅读这些内容,很明显您将使用 Smallest width 限定符来区分手机和平板设备,并使用 UI 模式 来区分电视和非电视。这个目录结构应该可以工作:

res/
    layout/
        layout.xml (default (i.e. phones))
    layout-sw600dp/
        layout.xml (non-televisions 600dp or wider (i.e. tablets))
    layout-sw600dp-television/
        layout.xml (televisions 600dp or wider)

因为 Smallest width 限定符的优先级高于 UI 模式 限定符,所以如果您尝试只使用 layout-television,您会发现您的电视仍然使用-sw600dp 布局。

【讨论】:

  • 感谢您的帮助,可惜电视打开layout.xml(默认)。
  • 我不知道它是否可以播放,但是当我在“电视”布局中时,我无法在设计中选择 android tv 作为设备。我的意思是当我选择电视时,这会将我重定向到 activity_main(默认)并更改设备,因此 activity_main(电视)保留 Nexus4。尽管如此,我在平板电脑设计上有 nexus 7,在默认设置上有 nexus 5,但我不能把电视放在 Televesion
  • 最后,我使用了:res/layout/layout.xml(默认(即手机))layout-sw600dp/layout.xml(非电视600dp或更宽(即平板电脑))layout-land- TV-notouch/layout.xml(电视)它可以工作,我不知道为什么我之前的评论有问题,但是很好,现在可以工作了,所以谢谢
猜你喜欢
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多