Android-UI基础
来源:互联网 发布:时间旅行 辩证法 知乎 编辑:程序博客网 时间:2024/06/08 11:55
Android-UI基础
一 UI和UI接口UI就是用户接口
UI继承View这个基类,看View的源代码
UI的基本架构,附上一张图:
UI的呈现,UI的事件,UI的布局
控件树的概念:ViewGroup下面又可以有ViewGroup或者View
三 自定义界面view
1 自定义View类继承自系统的View,
2 然后在Activity中实例化自定义View类的对象x
3 最后setContentView(x)
可以进行代码跟踪
1 Activity->phonewindow->view->layout
2 Activity->phonewindow->doceview
3 canvas内的画图的方法
4 view类onDraw
四 界面组件呈现的底层机制
1 surface下是图像显示驱动,字符设备驱动:framebuffer
2 skia:2D类库
3 OpenGL:3D类库
如下图:
五 Android界面事件机制
1 事件分类:
KeyEvent:硬键盘的点击事件
TouchEvent:触摸事件
View和Activity都有上面两种事件机制
TrackballEvent:轨迹球事件
2 事件触发的两种方法:
内部方法:
扩展View的时候回调相应的事件函数
onKeyUp
onTouchEvent
注意,需要设置自定义控件的焦点
setFocusable(true);
setFocusableInTouchMode(true);
外部方法:
注册事件监听器
3 时间分发dispatchKeyEvent:
KeyEvent分发:
消息发到当前上下文
context发到window
window优先发给输入法窗体
发给rootView(DecorView)
发给焦点View(事件接收机制默认返回false,允许下一步接受)
自定义控件->linux通过pipe进程间通讯传给->Activity->phonewindows->rootview->焦点view
TouchEvent分发:
从下往上:
自定义控件->rootview->phonewindow->activity
六 自定义界面的呈现
界面呈现机制:
1 呈现的两种方式:
xmlLayout呈现
动态编码实现:动态布局和画动态控件
2 呈现的核心:onDraw方法的使用
七 补充
用户交互设计师:给出具体的想法和UI图
视觉美工师:实现想法->真正的界面效果图
界面实现:程序员或者是编码能力强的视觉设计师
界面为何用xml:可以分离,程序员可以不去管xml的layout,让视觉设计师实现
八 面试题
1 View是所有控件的基类,说说他和Activity和window的关系
2 view的核心是什么,能否说下里面的onDraw函数
3 自定义组件如何实现自定义事件
4 NinePatch是什么?要求会使用
5 介绍下Android的界面事件机制
0 0
- android基础UI组件
- Android UI 绘图基础
- Android-UI基础
- Android基础UI组件
- Android UI基础布局
- Android基础与UI
- Android基础UI控件
- android基础UI控件
- Android基础UI编程(1)
- Android 基础UI Demo小合集
- Android基础之UI控件
- Android基础UI之ListView
- Android UI基础 --基本控件
- Android UI基础之Spinner
- Android UI设计基础案例
- Android UI基础java代码基础点
- 【android基础】通过线程更新主UI
- android基础第一篇 UI设计
- JavaScript学习笔记(一)
- c语言中static 函数和普通函数的区别?
- 代理
- Swift的74个常用内置函数介绍
- 提升网站转化率的四步优化方案
- Android-UI基础
- 数字视频概述
- 【莫比乌斯反演】[BZOJ2820]YY的GCD
- 辨别 “百度权重”作弊的手法
- call_user_func_array函数
- 关于HTML5
- 缺陷报告练习&优先级严重程度&测试tips#学习总结报告#
- AngularJS中使用$resource(已更新)
- 如何摧毁一个程序员的效率?