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 前言:近年来,智能 ...
随机推荐
- Vue打包后页面出现cannot get
学习Vue有大半个月了,然而遇到了不少坑,完全没有高手们那么容易,中间有不少值得记录下的东东,回头好好理理.先理下今天的: Vue打包命令简单啊,直接在命令行输入:npm run build 然而没一 ...
- C++中调用Python脚本(转载)
转载▼ 标签: 杂谈 C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库,需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了先看Py ...
- 微软高性能缓存AppFabric (一) 安装
博客原文链接:http://www.cnblogs.com/Qbit/p/6088703.html AppFabric 缓存功能的前身是VeloCity ,它是基于windows平台的一个高速内存缓存 ...
- 【洛谷3759】[TJOI2017] 不勤劳的图书管理员(树套树)
点此看题面 大致题意: 给定一个序列,每个元素有两个属性\(a_i\)和\(v_i\),每次操作改变两个元素的位置,求每次操作后\(\sum{v_i+v_j}[i<j,a_i>a_j]\) ...
- 【BZOJ3123】[SDOI2013] 森林(启发式合并主席树)
点此看题面 大致题意: 给你一片森林,有两种操作:询问两点之间的第\(k\)小点权和在两棵树之间连一条边. 前置技能:树上主席树 做这道题目,我们首先要会树上主席树. 关于树上主席树,这有一道很好的例 ...
- 在RichTextBox控件中添加超链接文本
实现效果: 知识运用: RichTextBox控件的AppendText方法 public void AppendText{string textData} //向控件中添加文本内容 和Process ...
- 去除myeclipse中doget和dopost方法中的注释
当我们使用myeclipse新建servlet时发现doget和dopost方法中有一些无用的注释,每次新建一个servlet时都要手动删除特别麻烦. 下面就教大家如何去除这些注释! 以myeclip ...
- Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中
package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
- package.json字段分析
分析1.必须在包的顶层目录下2.二进制文件应该在bin目录下3.javascipt在lib目录下4.文档在doc目录下 package.json字段分析 name:包的名称,必须是唯一的,由小写英文字 ...
- 《转载》ASP动态iframe
原文:[ASP.NET]关于iframe的两个技巧 最近在给朋友写个网站,虽然不大,但是也碰到了一些问题.这篇就为解决ASP.NET中关于IFRAME的两个很现实的问题提供解决方法.PS:呵呵,又做了 ...