android - 实现和设计适用于电视的 Android 应用

标签 android android-resources google-tv amazon-fire-tv android-tv

我想创建一个电视就绪的应用程序。由于这仍然是一个安静的新话题,我问自己这些问题:

  • 要获得出色的电视体验,我需要牢记什么?
  • 我可以与我的电视应用共享代码吗?
  • 我可以重复使用布局、字符串和其他资源吗?

此外,我目前在网上查找有用的资源时遇到问题,尤其是对于 Amazon Fire TV。我发现许多资源已过时或已移动,现在已成为死亡链接。

是否有一些实现出色应用的最佳做法?

最佳答案

这个答案仍在进行中


要获得出色的电视体验,我需要牢记什么?

Android 文档是一个不错的起点 Building Layouts for TV .亚马逊Design and User Experience Guidelines .以我目前的知识点,我认为为两个电视平台混合这些资源应该没有问题。

我也会检查这个资源:


我可以与我的电视应用共享代码吗?

您可以共享您当前使用的所有代码。您只需扩展 list 以确保它能在电视上正确显示。

要在 Android TV 启动器上集成,您需要添加此类别以进行集成:

<category android:name="android.intent.category.LEANBACK_LAUNCHER" />

阅读更多相关信息 here .

亚马逊以另一种安静的方式做到了这一点,现在我还不熟悉它,但似乎您需要先发布您的应用程序才能获得启动器集成。但您始终可以通过使用设置和管理应用来启动您的应用。


我可以重用布局、字符串和其他资源吗?

是的,你可以。我发现你可以使用 -w960dp 后缀来限制电视平台的资源。无需创建单独的应用程序来支持电视。


是否有一些实现优秀应用的最佳实践?

注意我在上面提到的后缀,您可以为所需的目标设备类型定义不同的资源。

所以如果你使用这个布局:

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="@string/hello"/>

您可以定义此资源:

values/strings.xml:

<string name="hello">Hello mobile</string>

values-w600dp/strings.xml:

<string name="hello">Hello tablet</string>

values-w960dp/strings.xml:

<string name="hello">Hello TV</string>

这将为所有平台生成正确的 hello(可穿戴设备始终是一个单独的项目)。

关于android - 实现和设计适用于电视的 Android 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26460493/

相关文章:

android - 应用程序以原生 4k 显示其图像内容的机制

android - 如何实现 uncaughtException android

android - 使用 Android 原生 Binder 发送自定义对象

google-tv - 通过 Google TV 在直播电视上叠加信息的现状如何

android - 屏幕密度和图像尺寸

android - 如何修复 Android Studio 中的 "Android resource linking failed"错误?

带字幕的 Android MediaPlayer/VideoView (SRT)

Android 推特 OAuth 回调

android - 唤醒锁是静态的吗?如果是,我如何在一个应用程序中管理多个服务/唤醒锁?

android - 无法解析 R.java,重复类