我的android审视之路---view

        做android开发快三年了,最近准备跳槽,才发现,有好多东西都是做了三年以来不怎么注意的,或者说,这三年以来都是为了实现功能而实现,没太多的想过之间的细节和优化的方向

         当重新想去拾起这些东西的时候,才发现,原来自己的知识是多么的浅薄,知其形而不知其实,得其果而不觉其味,悔恨!

         有些事情,觉悟之后就如当头一棒,为时未晚矣!

        好好总结一下,以博客呈现之。

        先从view入手复习。

        我们学习android以来,乃至于任何一门编程语言,教程上面教给我们的第一步往往是如何写一个hello world,而android的就是怎么在手机屏幕上显示一个属于自己的hello world。然后,我们会新建一个工程,其中IDE(集成开发环境)会给我们默认新建了一个Activity,并为这个Activity创建了一个xml的布局文件,我们只要点击运行,就会在我们的手机或者模拟器上面显示hello world,向世界问好的第一步就怎么愉快的开始了!

         我们知道,一个xml布局文件里面会有一个布局,线性布局(LinearLayout),表格布局(TableLayout),相对布局(RelativeLayout),框架布局(FrameLayout),绝对布局(AbsoluteLayout)等五大布局,我们这里把布局理解为容器,在容器里面会装载着许多控件,TextViewButtonImageView之类常用的控件,我们可以通过xml的一些属性,layout_marginlayout_width,layout_height之类的属性,确定一个布局或者一个控件的位置,可以通过textSize,textColor之类的属性确定控件的大小风格等,然后我们只要在java代码里面setContentView获取整个布局,然后整个界面就差强人意的显示出来。

         我们其实很少的去关心这个过程是怎么实现的,这个布局的大小是怎么测量的,怎么那么刚好摆放到我差不多希望的位置,怎么去刚好的绘制出我希望的颜色,形状等等。

         Ok,废话不多说,我们一步步来了解这个过程。

        我们从自定义view的角度去解析这个view的生成过程。

        我们先区别这两个概念,layout和控件,举个例子,LinearLayout和TextView,前者我们把它称为一个view的容器,后者我们把它理解为容器里面的子view,即ViewGroup和View。

        在自定义view中,我们无论继承View或者ViewGroup,一般会去重写onMeasure和onDraw,ViewGroup还会强制的要重写onLayout。

        onMeasure----顾名思义,测量,我们要显示一个view或者一个view容器,总得知道这个玩意到底有多大吧,View的话测量自己即可,ViewGroup还得对自己的孩子挨个测量,再加上margin的值,也还真麻烦。与测量相关的,还得提一下测量的三种模式:

         1 EXACTLY----对应于xml文件里面的match_parent和固定的dp值;

         2 AT_MOST-----对应于xml文件里面的wrap_content,这个自定义view的话就得代码里面给他实现大小咯;

         3 UNSPECIFIED----就是父类不限子类的大小(其实应该是限制不了,谁知道listview到底有多长)

         onLayout----给控件设置一个合适的位置,这个在ViewGroup里面是必须的,但在View里面其实是没有意义的,试着想下,只有父类有权决定子类的位置,子类的位置自己是不能控制的,你都不知道你的父亲能给你多少,你要的来么,哈哈!

         onDraw------绘制,这个就是真正显示在你的手机屏幕上的咯,绘制是在前两个步骤之后的,绘制的必备工具是画布和画笔,然后你就可以龙飞凤舞的表演了,这个要设置的东西太多,往后再考虑review一下。


         三个过程都简单过了一遍,其实每一个xml的绘制过程都要经过这三个步骤,其实也不简单,但这些步骤回想一下,会觉得很合情理。当然,要完成一个完美的自定义view,其实还没那么简单,很多时候,需要到滑动监听的时候,我们还要去重写onTouchEvent等方法,获取当前屏幕的宽高,与当前滑动的对比等等。当然其实我们自定义view不一定要去继承view和viewgroup这两个老祖宗,我们可以继承他们的子类,HorizontalScroView等等,然后完成起来就能事半功倍了!

         今天先复习那么一点,往后继续!

         继续努力,再接再厉!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值