Android view 相关一些基础

来源:互联网 发布:python base64 json 编辑:程序博客网 时间:2024/06/05 07:46

1.自定义View的事件分发机制

我们这里已一个3层linearlayout布局来做实例:就是一个lineaLayout布局在放了一个小一点lineaLayout,然后第二个lineaLayout中又放了一个最小lineaLayout。。你们做的时候可以设置不同背景色来区分
这里写图片描述
假如我们对最内层linearlayout布局进行了一次down事件
首先由activity的dipatchTouchEvent()方法来分发该事件,将事件传给外层的linearlayout的dispatchTouchEvent()方法处理,外层布局呢就通过onInterceptTouchEvent()方法判断是自己处理还是继续分发View,由于外层不处理,继续将事件传给中层,中层处理同上,内层表示他要处理事件,事件传给内层的onTouchEvent处理,如果该方法返回值为true,那么该事件结束,否则开始传递到父控件onTouchEvent方法。

2.view绘制流程

  1. onMeasure() 计算视图大小(测量)
  2. onLayout() 确定视图位置(安放)
  3. onDraw() 绘制视图(绘制)

3.为自定义View添加并使用自定义属性的过程

1 : 在Values下创建attrs.xml(当然也可以以别的名字命名,无限制),然后在该文件中添加自定义View的自定义属性!

2 : 在自定义View的构造方法中获取自定义属性值,并将值配予相应的位置!

3 :在xml中使用自定义控件及配置其自定义属性

注:在xml使用自定义控件时一定要加 :xmlns:custom=”http://schemas.android.com/apk/res-auto” 当然你也可以写成xmlns:custom=”http://schemas.android.com/apk/res/com.wang.test”(com.wang.test是应用的报名),这两种方式没有本质上的区别。至于custom随便你喜欢命名什么都可以。

0 0
原创粉丝点击