Android TV (三)(创建电视页面布局)

官方地址 镜像地址

创建电视页面布局

用户通常在距离电视屏幕10英尺的位置观看,并且它远远大于大多数Android设备的显示屏,但是这种类型的屏幕不能提供与小屏幕相同级别的细节和颜色。这些因素要求你为电视设备创建应用布局时,能创造一个有效的和愉快的用户体验。

使用布局主题


Android主题能为你的应用提供基础的布局。您应该使用一个主题来修改您的应用程序的activity的显示,这意味着这些activity要在电视设备上运行。

Leanback 主题

v17 leanback library为TV activity提供一个标准的主题通过调用Theme.Leanback. 这个主题为电视应用程序建立了一个一致的视觉风格。大多数电视应用程序推荐使用此主题。代码如下:

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

NoTitleBar 主题

在手机和平板电脑的Android应用程序中,标题栏是一个标准的用户界面元素,但它不适合的电视应用程序。如果你没有使用v17 Leanback,你需要使用这个主题使标题栏不显示。代码如下:

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

创建基本的电视机布局


电视设备的布局应遵循以下基本准则,以确保它们在大屏幕上是可用和有效的
1.横屏显示模式。
2.将屏幕导航控件放在屏幕的左侧或右侧,并保存内容的垂直空间。
3.将界面分成一些区块,使用Fragment,使用GridView代替Listview来更好的利用水平空间。
4.使用视图组来排列视图,如 RelativeLayout,LinearLayout。这种方法允许系统调整视图的位置的大小,对齐,纵横比和电视屏幕的像素密度。在布局控件之间添加足够的边距以避免混乱的布局。

过扫描

为了始终呈现一个完整的屏幕图片给观众,电视的布局有一些独特的要求是由于电视标准的演变导致的。出于这个原因,电视设备可以剪辑应用程序布局的外边缘,以确保整个显示被填充。这种行为通常被称为过扫描。
屏幕元素必须放置在用户随时可见的过扫描的安全区内。添加5%的安全边距,左右48dp,上下27dp。代码如下:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   <!-- Screen elements that can render outside the overscan safe area go here -->
   <!-- Nested RelativeLayout with overscan-safe margin -->
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_marginTop="27dp"
       android:layout_marginBottom="27dp"
       android:layout_marginLeft="48dp"
       android:layout_marginRight="48dp">
<!-- Screen elements that need to be within the overscan safe area go here -->
   </RelativeLayout>
</RelativeLayout>

注:如果你使用了v17 leanback就不要添加过扫描边距了,因为这些布局已经合并过过扫描边距了。

建立可用的文本和控件


电视应用程序布局中的文本和控件在远处应该很容易被看见和操控。
1.将文本分割成小块,使用户可以快速浏览。
2.在暗背景上使用亮文本。这种风格在电视上更容易阅读。
3.避免有非常窄或非常宽笔划的轻量级字体。使用简单的无衬线字体和防锯齿增加可读性。
4.使用Android的标准字体大小:

<TextView
      android:id="@+id/atext"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:gravity="center_vertical"
      android:singleLine="true"
      android:textAppearance="?android:attr/textAppearanceMedium"/>

5.确保所有的视图部件都足够大,人坐在离屏幕10英尺远的地方可以清楚地看到(这个距离对于超大屏幕来说更大)。最好的方法是使用布局相对大小,而不是绝对大小,使用密度无关像素(DIP)单位,而不是绝对像素单位。

管理电视布局资源


普通高清电视的显示分辨率为720p、1080i和1080p。你的电视布局应针对1920×1080像素的屏幕尺寸,然后允许Android系统降级你的布局元素在720p的分辨率上。在一般情况下,降低分辨率(删除像素)不会降低你的布局演示质量。然而,提升分辨率可能导致你的布局的显示质量降低,对你的应用程序的用户体验造成负面影响。
为了得到图像的最佳尺度的结果,尽可能使用9-patch图片。如果你在你的布局使用低质量或小的图像,他们会出现像素化,模糊或粗糙,用户体验差。应使用高质量的图像代替。

避免布局反模式


1.重用手机或平板电脑布局。不要在没有修改的情况下重用手机或平板电脑的布局。其他Android设备的布局不适合电视设备,应简化操作。
2.ActionBar 。不适合电视界面。
3.ViewPager。屏幕之间滑动可以在手机或平板电脑上工作,但不要在电视上尝试!
TV Desgin

处理大图片


电视设备像任何其他Android设备一样都有一个有限的内存量。如果你用高分辨率的图像构建应用程序布局或者在应用程序的操作中使用许多高分辨率图像,它会快速地运行到内存阀值并导致内存溢出。
为了避免这些类型的问题,遵循以下提示:
1.只有在屏幕上显示时才加载图像。
2.清除不再需要的位图。
3.使用WeakReference引用位图存储在内存中的集合对象。
4.如果你的图片从网络获取,使用AsyncTask获取,为了更快的访问可以将其存到设备中。
5.下载时将图像缩小到合适的大小。

提供有效的广告


对于居室环境,我们建议你使用全屏且在30秒内关闭的视频广告。Android电视广告的功能,如关闭按钮和点击率,必须使用键盘而不是触摸。
Android TV不提供网页浏览器。你的不能启动网页浏览器或者重定向到Google Play未经允许的Android设备。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容