首先,看下效果图 





拿到这个图片我第一想到的是用GridLayout来写,但是写出来代码比较繁琐,很 麻烦,于是考虑到这样写:

1. 先把整个布局写好

 
 <LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="@dimen/x35"android:layout_marginRight="@dimen/x35"android:layout_weight="1"android:background="@mipmap/remote_tv_bj"><include layout="@layout/activity_remote_keyboard"></include></LinearLayout>

2.然后写 include里面的布局

          a.

activity_remote_keyboard
       <pre name="code" class="html"><pre name="code" class="html">    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="12dp"><LinearLayout style="@style/remote_line"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:text="电视机"android:textColor="@color/colorPrimaryDark"android:textSize="18sp" /></LinearLayout><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><ImageViewandroid:id="@+id/turn_off_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/remote_tv_close" /></LinearLayout><LinearLayout style="@style/remote_kb"><ImageViewandroid:id="@+id/add_voice"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/add_voice" /></LinearLayout><LinearLayout style="@style/remote_kb"><ImageViewandroid:id="@+id/reduce_voice"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/reduce_voice" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/switch_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="TV/AV"android:textColor="@color/colorPrimaryDark" /></LinearLayout></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="1.5dp"android:layout_margin="4dp"android:background="@mipmap/remote_tv_edix" /><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><ImageViewandroid:id="@+id/turn_on_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/remote_tv_open" /></LinearLayout><TextViewandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="2"android:gravity="center"android:text="机顶盒"android:textColor="@color/colorPrimaryDark"android:textSize="18sp" /><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/mute"style="@style/remote_kb_text"android:text="静音" /></LinearLayout></LinearLayout><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_1"style="@style/remote_kb_text"android:text="1" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_2"style="@style/remote_kb_text"android:text="2" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_3"style="@style/remote_kb_text"android:text="3" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/add_channel"style="@style/remote_kb_text"android:text="频道 +" /></LinearLayout></LinearLayout><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_4"style="@style/remote_kb_text"android:text="4" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_5"style="@style/remote_kb_text"android:text="5" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_6"style="@style/remote_kb_text"android:text="6" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/reduce_channel"style="@style/remote_kb_text"android:text="频道 —" /></LinearLayout></LinearLayout><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_7"style="@style/remote_kb_text"android:text="7" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_8"style="@style/remote_kb_text"android:text="8" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_9"style="@style/remote_kb_text"android:text="9" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/add_jd_voice"style="@style/remote_kb_text"android:text="音量 +" /></LinearLayout></LinearLayout><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_ok"style="@style/remote_kb_text"android:text="确认" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_0"style="@style/remote_kb_text"android:text="0" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_information"style="@style/remote_kb_text"android:text="信息" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/remote_jd_voice"style="@style/remote_kb_text"android:text="音量 —" /></LinearLayout></LinearLayout><LinearLayout style="@style/remote_line"><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv"style="@style/remote_kb_text"android:text="电视" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_custom1"style="@style/remote_kb_text"android:text="自定义" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_custom2"style="@style/remote_kb_text"android:text="自定义" /></LinearLayout><LinearLayout style="@style/remote_kb"><TextViewandroid:id="@+id/tv_back"style="@style/remote_kb_text"android:text="返回" /></LinearLayout></LinearLayout>
</LinearLayout>

3. styles.xml

  <!-- 电视机机顶盒样式--><style name="remote_line"><item name="android:layout_weight">1</item><item name="android:layout_width">match_parent</item><item name="android:layout_height">0dp</item><item name="android:orientation">horizontal</item></style><!-- 电视机机顶盒按键样式--><style name="remote_kb"><item name="android:clickable">true</item><item name="android:gravity">center</item><item name="android:layout_weight">1</item><item name="android:layout_height">match_parent</item><item name="android:layout_width">0dp</item><item name="android:background">@drawable/remote_kb</item><item name="android:layout_margin">4dp</item></style>
这样就OK了~~

使用 自定义布局 实现灵活的万能遥控器界面相关推荐

  1. android 开发打赏布局,Android自定义View模仿虎扑直播界面的打赏按钮功能

    Android自定义View模仿虎扑直播界面的打赏按钮功能 发布时间:2020-09-28 12:15:53 来源:脚本之家 阅读:77 作者:shenhuniurou 前言 作为一个资深篮球爱好者, ...

  2. re管理器Java_自定义布局管理器-FormLayout

    第二部分:自定义布局管理器 在java.awt包与javax.swing包下有许多现成的布局类,比如BorderLayout.FlowLayout,还有较为复杂的.用于精确定位的布局类GridBagL ...

  3. 从自定义TagLayout看自定义布局的一般步骤[手动加精]

    从自定义TagLayout看自定义布局的一般步骤[手动加精] 我们常用的布局有LinearLayout,FrameLayout,RelativeLayout,大多数情况下都能满足我们的需求,但是也有很 ...

  4. Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面

    网格UICollectionView除了使用流布局,还可以使用自定义布局.实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法: 1 2 3 4 5 6 7 ...

  5. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )

    文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...

  6. Android学习问题:关于AlertDialog中自定义布局带有的EditText无法弹出键盘

    最近在用到AlertDialog的时候,自定义了其布局文件,其中带有EditText,但是发现在手机上使用的时候,点击EditText却没有弹出键盘,在网上搜索了下,看到有好几种解决方法,试过其中一些 ...

  7. 论__AlertDialog自定义布局回调修改的正确方式

    论__AlertDialog自定义布局回调修改的正确方式 本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/articl ...

  8. element布局容器大小_Flutter完整开发实战详解(十六、详解自定义布局实战)

    本篇将解析 Flutter 中自定义布局的原理,并带你深入实战自定义布局的流程,利用两种自定义布局的实现方式,完成如下图所示的界面效果,看完这一篇你将可以更轻松的对 Flutter 为所欲为. 文章汇 ...

  9. android 自定义布局 根据布局获取类,android自定义布局中的平滑移动之ViewGroup实现...

    在android应用程序的开发过程中,相信我们很多人都想把应用的交互做的比较绚丽,比如让界面切换平滑的滚动,还有热度灰常高的伪3D等界面效果,通常情况下,系统提供的应用在特效这方面只能为我们提供简单的 ...

最新文章

  1. sql中存储过程打印返回的记录集
  2. Spring Boot @ConfigurationProperties注解的使用
  3. python版权问题_关于版权问题 · Issue #62 · hankcs/HanLP · GitHub
  4. [Everyday Mathematics]20150113
  5. Superset单点登录调整源码
  6. 软件测试用例项目写作,通用测试用例写作方法
  7. 计算机职称考试模拟试题及答案,2018职称计算机考试WindowsXP模拟试题及答案|计算机一级模拟题软件...
  8. c# 再次尝试 连接失败_手机投屏电视连接不上怎么回事?
  9. 当网络主播也需要考试了!持证上岗能否改善直播圈乱象?
  10. efi分区咋移动到c盘里_efi系统分区是什么?重装系统EFI系统分区图文教程
  11. ExtJs6 响应式布局
  12. Oracle数据库CPU使用率过高处理记录
  13. 简单模拟医院叫号系统
  14. 阿里云海外云服务器5折起,新老用户均可选购(免备案)
  15. React基础(肆)———状态和循环渲染
  16. Microservices--原文翻译(英汉对照)
  17. mysql字符集与校对规则设置_mysql中的字符集和校对规则(mysql校对集)
  18. hdu 4405 全期望公式
  19. 车牌检测模型训练(含源码和数据集)
  20. 阿里工业互联网平台白皮书

热门文章

  1. 【工具】监听手机短信转发到群聊或服务器
  2. 前端常考react面试题(持续更新中)
  3. 智慧新能源电站远程监控系统总体设计
  4. 简单汽车售票管理系统
  5. 通过JAVA自动获取Ip地址
  6. 中兴远航10 root获取 ZTE 7530N 刷机magisk 刷机包TWRP下载安装LS框架
  7. R-quantile()
  8. 《论文阅读》开放域对话摘要(长文本|知识嵌入)
  9. 如何把图片批量转为jpg格式?
  10. Win11 怎么用cmd命令删除Windows部分自带应用