Android TV 开发(2)
本文来自网易云社区
作者:孙有军
首先来看看拨号界面的配置代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
android:orientation="horizontal"
tools:context="im.yixin.home.dial.DialFragment"> <FrameLayout
android:id="@+id/dial_pan"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
</FrameLayout> <FrameLayout
android:id="@+id/contact_pan"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/gap_12_dp"
android:layout_weight="3"></FrameLayout>
</LinearLayout>
对应的界面代码如下:
public class DialFragment extends Fragment{
public DialFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @return A new instance of fragment DialFragment.
*/
public static DialFragment newInstance() {
DialFragment fragment = new DialFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_dial, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addFragments();;
}
private void addFragments() {
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.dial_pan, new DialPanFragment());
VerticalGridFragment fragment = new VerticalGridFragment();
Bundle args = new Bundle();
args.putInt(Extra.COLUMNS, Extra.DIAL_COLUMNS);
fragment.setArguments(args);
transaction.replace(R.id.contact_pan, fragment);
transaction.commit();
}
}
拨号界面被分成了两部分,一部分为拨号盘,一部分为联系人,分别占据了屏幕一份和三份,右边的联系人与主界面的好用共用了同一个Fragment,因此这里我们再看看接下来的两个界面,首先我们看看拨号盘的界面代码。
由于只做展示,因此代码写的很粗糙,界面直接写了N个按钮的代码,配置界面如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white_35_transparent"
android:clickable="true"
android:contextClickable="true"
android:orientation="vertical"
tools:context="im.yixin.home.dial.DialFragment"> <ImageView
android:id="@+id/dial_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/gap_20_dp"
android:focusable="true"
android:padding="@dimen/gap_20_dp"
android:src="@drawable/tv_call_btn_selector"/> <LinearLayout
android:id="@+id/input_num_line_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/dial_icon"
android:baselineAligned="false"
android:orientation="horizontal"> <RelativeLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"
android:background="@drawable/keyboard_item_selector"> <ImageView
android:id="@+id/input_key_number_null"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:contentDescription="@string/empty"/>
</RelativeLayout> <RelativeLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"> <TextView
android:id="@+id/input_key_number_0"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="@drawable/keyboard_item_selector"
android:focusable="true"
android:gravity="center"
android:text="0"
android:textColor="#ffffff"
android:textSize="30sp"/>
</RelativeLayout> <RelativeLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"> <ImageView
android:id="@+id/input_key_number_del"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="@drawable/keyboard_item_selector"
android:contentDescription="@string/empty"
android:focusable="true"
android:scaleType="center"
android:src="@drawable/tv_del"/>
</RelativeLayout>
</LinearLayout> <LinearLayout
android:id="@+id/input_num_line_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/input_num_line_1"
android:baselineAligned="false"
android:orientation="horizontal"> <RelativeLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"> <TextView
android:id="@+id/input_key_number_7"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="@drawable/keyboard_item_selector"
android:focusable="true"
android:gravity="center"
android:text="7"
android:textColor="#ffffff"
android:textSize="30sp"/>
</RelativeLayout> <RelativeLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"> <TextView
android:id="@+id/input_key_number_8"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="@drawable/keyboard_item_selector"
android:focusable="true"
android:gravity="center"
android:text="8"
android:textColor="#ffffff"
android:textSize="30sp"/>
</RelativeLayout> <RelativeLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"> <TextView
android:id="@+id/input_key_number_9"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="@drawable/keyboard_item_selector"
android:focusable="true"
android:gravity="center"
android:text="9"
android:textColor="#ffffff"
android:textSize="30sp"/>
</RelativeLayout>
</LinearLayout>
网易云免费体验馆,0成本体验20+款云产品!
更多网易研发、产品、运营经验分享请访问网易云社区
相关文章:
【推荐】 SpringBoot入门(五)——自定义配置
Android TV 开发(2)的更多相关文章
- Android TV开发总结(六)构建一个TV app的直播节目实例
请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52966319 近年来,Android TV的迅速发展,传统的有线电视受 ...
- Android TV开发总结(五)TV上屏幕适配总结
前言:前面几篇总结一些TV上的小Sample,开源到GitHub:https://github.com/hejunlin2013/TVSample, 点击链接,可以持续关注.今天总结下TV上屏幕适配. ...
- Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52835829 前言:上篇中,&l ...
- 聊聊真实的 Android TV 开发技术栈
智能电视越来越普及了,华为说四月发布智能电视跳票了,一加也说今后要布局智能电视,在智能电视方向,小米已经算是先驱了.但是还有不少开发把智能电视简单的理解成手机屏幕的放大,其实这两者并不一样. 一.序 ...
- Android TV开发总结(七)构建一个TV app中的剧集列表控件
原文:Android TV开发总结(七)构建一个TV app中的剧集列表控件 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必转载 ...
- Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听
原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public cla ...
- Android TV开发总结(四)通过RecycleView构建一个TV app列表页(仿腾讯视频TV版)
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52854131 前言:昨晚看锤子手 ...
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
前言:上篇是介绍构建TV app前要知道的一些事儿,开发Android TV和手机本质上没有太大的区别,屏大,焦点处理,按键处理,是有别于有手机和Pad的实质区别.今天来介绍TV中Metro UI风格 ...
- Android TV 开发 (1)
本文来自网易云社区 作者:孙有军 前言 这里主要记录几个TV问题的解决方案,如果对这个不感兴趣的其实就不用往下看了. 这几天有一个需求就是要求出一个TV版本的app,之前没有具体的了解Tv版的app有 ...
- Android TV开发总结(一)构建一个TV app前要知道的事儿
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52792562 前言:近年来,智能 ...
随机推荐
- #include stdio.h(2)
#include <stdio.h> //mian函数是程序的入口 int main() { /* //函数:是按一定的格式对一段代码的封装 //专门用来实现一功能的代码合集,可以重复使用 ...
- office密匙
office 2010 VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB 6QFDX-PYH2G-PPYFD-C7RJM-BBKQ8 BDD3G-XM7FB-BD2HM-YK63V-VQFD ...
- php使用GD库实现图片水印和缩略图——给图片添加图片水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- IOS 某个控件出不来原因(经验分享)
某个控件出不来:(检查原因) 1.frame的尺寸和位置对不对 2.hidden是否为YES 3.有没有添加到父控件中 4.alpha 是否 < 0.01 5.被其他控件挡住了 6.父控件的前面 ...
- POJ 3666 Making the Grade(区间dp)
修改序列变成非递减序列,使得目标函数最小.(这题数据有问题,只要求非递减 从左往右考虑,当前a[i]≥前一个数的取值,当固定前一个数的取值的时候我们希望前面操作的花费尽量小. 所以状态可以定义为dp[ ...
- Java环境变量搭建(Linux环境)
1. 下载解压JDK压缩包 例如:解压到 /opt/jdk1.7.0_80 下 2. 添加环境变量到 /etc/profile 文件中 vi /etc/profile 在文件末尾追加如下内容: exp ...
- 转:对比python 链接 neo4j 驱动,py2neo 和 neo4j-driver 和 neo4jrestclient
Comparing Neo4j driver, py2neo and neo4jrestclient with some basic commands using the Panama Papers ...
- django+xadmin在线教育平台(三)
通过留言版功能回顾django基础知识 将对于django目录结构,使用Django快速搭建可以提交的表单页面,models.py , urls.py, views.py. 从数据库中取出数据展示到h ...
- 关于poi的坑
背景故事 今天遇上一个坑,关于poi公式计算结果出错的问题,自己打断点debug了半天,虽然没彻底搞清楚为啥不行,但所幸找到了解决办法. 干货 下面不废话,直接贴干货,原先的公式处理代码如下: fin ...
- Mysql主从数据同步cheksum问题
做主从同步时出现问题,show slave status显示错误: Last_IO_Error: Got fatal error from master when reading data from ...