android视频教程

android视频教程

5 (13人评价)
  • 课时:(26)

  • 学员:(409)

  • 浏览:(14869)

  • 加入课程

android视频教程25的笔记

相关课时: 笔记详情:

学习UI 2+1原则

1、界面Component是如何呈现出来的。

呈现的两种方式:

XML Layout的呈现;

动态编码呈现:动态布局;画动态控件。

呈现的核心,牢牢把握住onDraw。平面图像Graphic-Canvas&Drawable简单介绍。

layoutinflator

View底层如何支持?

                    Application

java View/Widget/Canvas      Open

Skia                                   GL

                    Sunface

Skia,第三方2D画图引擎,后被google收购,现在开源。类似Linux上QT。

OpenGL,支持3D实现。

Sunface,frame buffer驱动支持

                                      

+1、UI Component放在哪?(复合界面布局)控件树的观念。

要搞清放哪,就要搞清楚ViewTree层级关系。类比HTML的ViewTree。

sample:view和viewgroup

SDK中的工具heirarchyviewer,层级视图的浏览,分析(商业软件)界面构成,层级关系。读取模拟器当前软件activity

 

2 、Android界面事件机制。

Android界面事件分类:

KeyEvent

TouchEvent

TrackballEvent-轨迹球,基本弃用。

 

Android界面事件的触发及分发:

事件,就是用户交互时触发的操作。

可以通过如下两种方式来启动事件交互:

1、定义一个事件监听程序(listener)并且注册它。以onClickListener()为例,注册往往命名setOnClickListener()。

2、重载已经回调的事件方法。override,这个往往用在你基于系统的View类进行扩展的时候用。(自定义组件?)

事件触发的两种方法:

扩展view的时候回调事件函数。-内

注册事件监听器。-外

事件分发dispatchKeyEvent:

keyEvent分发:

   消息发到当前(activity)上下文

   Context发到Window

   window优先发给输入法窗体

   发给rootView(DecorView)-层层找到focus

   发给焦点子view

touchEvent分发:---根据位置(坐标)快速定位当前view

    从下往上。onTouchEvent()返回false,继续事件上传。返回true,“我”处理了,不再上传。

 

如何使用自定义组件?(在layout中)

标签加上包即可:<sundy.viewtest.MyView  .../>

0 0

你感兴趣的课程

8万+浏览/ 916学员/ 4.5评分
免费
6万+浏览/ 177学员/ 5评分
免费
6万+浏览/ 971学员/ 4.8评分
免费