官网:https://developer.android.com/training/tv/start/start.html


确定支持的媒体格式


点击查看以下各项的文档,了解在Android TV上的编解码器、协议和支持的格式


配置一个电视项目


先决条件

要求sdk-tools 24或更高;sdk版本Android5.0(API21)或更高;targetSdkVersion 等于21或更高


声明一个电视的Activity

<application
  android:banner="@drawable/banner" >
  ...
  <activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

  <activity
    android:name="com.example.android.TvActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Leanback">

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

  </activity>
</application>

category.LEANBACK_LAUNCHER 用于在Google Play上过滤你的应用,表示是一个电视App。


声明Leanback支持

<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>

如果required="true",表示只能运行在使用Leanback UI的设备上


声明不需要触摸屏

如果当前应用只在电视上运行,不支持触摸屏。那就声明如下:

<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>


提供一个主屏上的banner

<application
    ...
    android:banner="@drawable/banner" >

    ...
</application>

android:banner 可以用于<application> 中, 表示一个全局默认的 banner。

用于<activity>中, 表示这个activity特定的banner


改变launcher颜色

电视应用启动时,系统会显示一个动画,如要自定义动画颜色,可以设置android:colorPrimary。还可以设置两个属性如下:

<resources>
    <style ... >
      <item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item>
    </style>
</resources>


添加Android TV 支持库


Android 的Support 库的路径为: <sdk>/extras/android/support/ 目录下

v17 leanback library:提供了一些用于电视应用的Widgets,

v7 recyclerview library:RecyclerView 相关, 被v17依赖

v7 cardview library: CardView相关




Logo

智屏生态联盟致力于大屏生态发展,利用大屏快应用技术降低开发者开发、发布大屏应用门槛

更多推荐