自定义组合控件,适配器原理-Day31

自定义组合控件,适配器原理-Day31

mobile2.1

  1. 主页定义
  2. 手机上锁功能

1.弹出设置密码框。java

  1. 手机下载进度
  2. 自定定义控件

控件的属性其实就是控件类一个属性设置属性调用类的set方法方法android

自定义组合控件的思路

  1. 生命一个View对象继承自相对布局,线性布局或者其余的ViewGroup
  2. View对象重写构造方法,而后初始化布局,经过View.inflate()方法把咱们本身定义的布局挂到界面当中。
  3. 自定义属性在res/values目录下建立attrs.xml里面定义一些属性,
<resources
<declare-styleable name="cn.itcast.phonesafe.view.SettingView">
<attr name="setting_title" format="string" />
<attr name="des_on" format="string" />
<attr name="des_off" format="string" />
</declare-styleable>
</resources>
  1. 生命自定义属性的命名空间 xmlns:zl_pro="http://schemas.android.com/apk/res/cn.zlpro.mobilesafe"函数

  2. 能够在当前布局里面使用咱们1条定义的控件了。布局

  3. 经过自定义函数的构造方法获取属性。AttributeSet
    attrs
    里面能够获取到
title = attrs.getAttributeValue(            "http://schemas.android.com/apk/res/cn.zlpro.mobilesafe","setting_title");

总结:自定义控件就是咱们不用系统定义的控件,咱们本身定义,控件就是一个类,咱们能够把这里类使用到咱们的布局文件当中。 如今有许多都是能够 google

AndroidUI界面通常结构

LayoutInflater简单原理

LayoutInflater就是经过pull解析布局xml文件内部调用了createViewFromTag()该方法有节点和参数接着又去调用内部一个createView()方法,使用反射的方式建立View,这样经过递归的方式把DOM结构的布局所有反射建立成View对象spa

绘制原理

视图的绘制过程都必须经历三个最主要的阶段,即onMeasure()测量、onLayout()肯定位置和onDraw()绘制,绘制到咱们屏幕上面, 注意View是不会帮我绘制图形的,因此每一个内容须要自行绘制 TextView ImageView都重写了onDraw()方法,绘制主要用到了Canvas这个类。.net

源代码final View view = createViewFromTag(name, attrs);这行代码来建立VView对象,最后添加到父节点当中。最后如此反复得递归就能够把全部的布局绘制到窗口上面了 线程

参考博文:
LayoutInflater原理分析,一步步了解View(一)
Android视图绘制流程彻底解析,带你一步步深刻了解View(二)
Android视图状态及重绘流程分析,带你一步步深刻了解View(三)
Android自定义View的实现方法,带你一步步深刻了解View(四)
Android 自定义控件开发入门设计

问题专区

  1. 适配器监听原理

    ListView 针对List中每一个item,要求 adapter “给我一个视图” (getView)。 因此在setAdapter()方法的时候就是给一个能够拿到装到当前容器的View生成器code


适配器继承图
适配器继承图
  1. 控件怎么实现监听的。
  2. 自定义控件的原理,构造函数的做用完成

    其实即便在LayoutInflater加载成为布局的时候,经过反射响应的View,若是pull解析到该节点时就会调用改方法,绘制相应的View,源代码final View view = createViewFromTag(name, attrs);这行代码来建立VView对象,最后添加到父节点当中。最后如此反复得递归就能够把全部的布局绘制到窗口上面了。

  3. 怎么判断是子线程UI线程

  4. 学会google的最新设计语言

心得体会

  1. 后期精简代码,先把代码码完,接口逻辑装配
  2. 之后老师上课的代码不能拖到后期来处理。

创意

  1. 录视频添加本身科技评论
相关文章
相关标签/搜索