位置: 编程技术 - 正文

Android自定义View的用法总结(android自定义viewgroup绘制)

编辑:rootadmin
本文参考了: SDK中提供了很多UI组件,如RelativeLayout, LinearLayout等,使用自定义控件有两大优点:1、通过减少View的使用来增加UI的显示效率2、构建SDK中没有的控件原文总结了4种自定义View,分别是Composite View, Custom Composite View, Flat Custom View和Async Custom Views。示例代码在 和Smoothie.Picasso

推荐整理分享Android自定义View的用法总结(android自定义viewgroup绘制),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android自定义viewgroup,android自定义view流程,android自定义view的实现,android自定义view流程,android自定义view流程,android自定义view属性,android自定义view的三大流程,android自定义view的三大流程,内容如对您有帮助,希望把文章链接给更多的朋友!

Picasso是一个异步图片加载库,Smoothie提供了异步加载ListView和GridView数据项的接口,使列表数据的加载更加顺滑。

本文只介绍Composite Vew 和 Custom Composite View的方法,这两种方式足够我们使用了,剩余两种方法需要自定义一套控制视图的框架,维护代价高,建议只用在app的核心且稳定的UI中,感兴趣的读者可自行研究。

Composite View此方法是将多个View结合成一个可重用View的最简单方法,过程如下:1、自定义控件,继承相应的控件。2、在构造函数中填充一个merge布局3、初始化自定义控件中的内部View

4、提供刷新View的接口

下面介绍了一个用法,该View的布局如下图所示:

首先是定义一个类文件TweetCompositeView.java

该类继承自RelativeLayout,实现了TweetPresenter的接口以更新UI。构造函数中初始化内部的View

布局文件tweet_composite_view.xml中的merge tag减少了布局的层次

这种方法自定义的View用法简单,维护也方便。但这种方式自定义的View的UI子View较多,对于复杂的View,将影响遍历效率。打开手机设置中的显示布局边界选项,效果图如下所示:

Android自定义View的用法总结(android自定义viewgroup绘制)

Android某些控件如RelativeLayout,LinearLayout等容器控件,需要多次遍历子View来确定自身的属性,如LinearLayout的weight属性。如果能针对自己的App自定义子View的计算和定位逻辑,则可以极大的优化UI的遍历。这种做法便是接下来介绍的Custom Composite View

Custom Composite View

相比Composite View的方法,一个Custom Composite View继承自一个ViewGroup,并实现了onMeasure和onLayout方法。下面的TweetLayoutView便是一个Custom Composite View.

TweetLayoutView.java

这个类的布局文件仍然是tweet_composite_view.xml,构造函数中初始化内部的View,与Composite View的不同之处在于,它通过重载onMeasure和onLayout方法来确定内部View的尺寸和位置。基本思路是过程通过ViewGroup’s 的measureChildWithMargins() 方法和背后的 getChildMeasureSpec() 方法计算出了每个子视图的 MeasureSpec 。这个自定义View的效果图的布局层次如下图所示,和Composite View的层次一样,但这个View的遍历开销要少于前者。

如果想进一步优化关键部分的UI,如ListView和GridView,可以考虑把Custom Composite View合成单一的View统一管理,使得到的View的层次如下图所示:

要达到这个效果,需要参考Flat Custom View的自定义View方式,刚兴趣读者可参考源代码。

android Menu详解 onCreateOptionsMenu() Android的onCreateOptionsMenu()创建菜单Menu详解时间--::ITeye-博客原文

Android多线程之handler 前言Android的消息传递机制是另外一种形式的事件处理,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该

android的动画之translate Android动画之translate(位移动画)上一篇文章讲了Android的左右滑动切换,实现过程是非常简单,一些新手可能会向深入了了解Activity切换的原理,下面主要

标签: android自定义viewgroup绘制

本文链接地址:https://www.jiuchutong.com/biancheng/384271.html 转载请保留说明!

上一篇:Android中Strings.xml使用占位符示例

下一篇:android Menu详解 onCreateOptionsMenu()(android中menu)

  • 工程承包公司账务处理
  • 税前经营利润计算
  • 消费型增值税的含义
  • 对公账户是不是实时到账
  • 自然人扣缴是什么意思
  • 软件企业购进软件服务怎么入账
  • 个体工商户是对公账户还是个人账户
  • 自然人城建税减半征收
  • 开发票税前税后
  • 利用废旧物资生产设备
  • 员工上下班交通安全培训
  • 收取员工宿舍租金收入要交增值税吗
  • 营改增后企业出售房产涉税
  • 工程预缴税款会计分录
  • 卷式发票有税率吗
  • 承包学校的食堂如何纳税
  • 企业财务月确定不当造成税务问题
  • 金蝶K3打印凭证下的过账和制单怎么新增名字
  • 现金流量表根据什么原则编制
  • 成本是否有含税金额
  • 百旺发票修复怎么弄
  • 外派人员计算个人所得税可否有附加扣除
  • 发票跨年了还能认证吗
  • 收购报废车有利润吗
  • 苹果iphone支持在哪
  • bios怎么关
  • 个人承包建筑工程转让协议
  • 收购后的固定资产如何入账
  • 其他应付款转资本公积股东决议
  • vue.js mvvm
  • 非货币性资产交换补价大于25%的会计处理
  • 合并及公司利润表
  • php7.0新特性
  • 工会福利如何做账
  • php curl_exec
  • gnss定位技术的应用前景
  • 残保金的计费依据
  • vue如何实现路由跳转缓存
  • sqlyog
  • 个体工商户转企业政策
  • 给员工购买住房公积金是先办卡吗?
  • 补缴去年的附加税怎么算
  • 限定性净资产是资产类科目吗
  • 公司承担员工的个税怎么做账
  • 什么公司可以开普票
  • 企业的所得税税率怎么计算
  • 注册公司时企业类型为什么没有自然人独资
  • 办理地税手续费
  • 交耕地占用税如何交
  • 已确认收入但尚未发出商品分录
  • 高新企业如何做账
  • 物业临时用工人员管理制度范本
  • 提前预支工资怎么打条子
  • 企业收到政府补助金80 000元,存入银行
  • 下乡扶贫可以报什么岗位
  • 免征增值税还要计提附加税吗
  • 财务人员需要填报的报表有哪些
  • 如何设计高效合理的未来课程
  • win7系统浏览器怎么设置
  • win7与ubuntu双系统
  • xp系统无法安装win7系统
  • linux快速查找历史命令
  • 重装系统要注意哪些
  • Win10 Mobile RS2预览版14905更新内容大全:全新精致铃声
  • explore是什么文件
  • edge新版浏览器
  • win7退出家庭组
  • 你会支持国产系统吗英文
  • win10系统日历怎么放在桌面
  • 使用jquery插件的好处
  • css透明属性详解怎么写
  • jquery 获得焦点
  • jquery validate表单校验
  • jni静态注册和动态注册
  • jquery ajax双击div可直接修改div中的内容
  • asynctask缺点
  • javascript零基础入门书籍
  • js如何实现复制
  • 税务个人廉洁谈话记录内容
  • 申报税务登记日期怎么填
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设