onFinishInflate() 当View中所有的子控件 均被映射成xml后触发
onMeasure(int, int) 确定所有子元素的大小
onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发
onSizeChanged(int, int, int, int) 当view的大小发生变化时触发
onDraw(Canvas) view渲染内容的细节
onKeyDown(int, KeyEvent) 有按键按下后触发
onKeyUp(int, KeyEvent) 有按键按下后弹起时触发
onTrackballEvent(MotionEvent) 轨迹球事件
onTouchEvent(MotionEvent) 触屏事件
onFocusChanged(boolean, int, Rect) 当View获取 或失去焦点时触发
onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发
onAttachedToWindow() 当view被附着到一个窗口时触发
onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和 onAttachedToWindow() 是相反的。
onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发
以上是View实现的一些基本接口的回调方法,一般我们需要处理画布的显示时,重写onDraw(Canvas)用的的是最多的:
view plaincopy to clipboardprint?
01. @Override
02. protected void onDraw(Canvas canvas) {
03. //这里我们直接使用canvas对象处理当前的画布,比如说使用Paint来选择要填充的颜色
04. Paint paintBackground = new Paint();
05. paintBackground.setColor(getResources().getColor(R.color.xxx)); //从Res中找到名为xxx的color颜色定义
06. canvas.drawRect(0, 0, getWidth(), getHeight(), paintBackground); //设置当前画布的背景颜色为paintBackground中定义的颜色,以0,0作为为起点,以当前画布的宽度和高度为重点即整块画布来填充,具体的请查看Android123未来讲到的Canvas和Paint,在Canvas中我们可以实现画路径,图形,区域,线。而Paint作为绘画方式的对象可以设置颜色,大小,甚至字体的类型等等。
07.}
@Override
protected void onDraw(Canvas canvas) {
//这里我们直接使用canvas对象处理当前的画布,比如说使用Paint来选择要填充的颜色
Paint paintBackground = new Paint();
paintBackground.setColor(getResources().getColor(R.color.xxx)); //从Res中找到名为xxx的color颜色定义
canvas.drawRect(0, 0, getWidth(), getHeight(), paintBackground); //设置当前画布的背景颜色为paintBackground中定义的颜色,以0,0作为为起点,以当前画布的宽度和高度为重点即整块画布来填充,具体的请查看Android123未来讲到的Canvas和Paint,在Canvas中我们可以实现画路径,图形,区域,线。而Paint作为绘画方式的对象可以设置颜色,大小,甚至字体的类型等等。
}
当然还有就是处理窗口还原状态问题(一般用于横竖屏切换),除了在Activity中可以调用外,开发游戏时我们尽量在View中使用类似
view plaincopy to clipboardprint?
01.@Override
02. protected Parcelable onSaveInstanceState() {
03. Parcelable p = super.onSaveInstanceState();
04. Bundle bundle = new Bundle();
05. bundle.putInt("x", pX);
06. bundle.putInt("y", pY);
07. bundle.putParcelable("android123_state", p);
08. return bundle;
09. }
10. @Override
11. protected void onRestoreInstanceState(Parcelable state) {
12. Bundle bundle = (Bundle) state;
13. dosomething(bundle.getInt("x"), bundle.getInt("y")); //获取刚才存储的x和y信息
14. super.onRestoreInstanceState(bundle.getParcelable("android123_state"));
15. return;
16. }
分享到:
相关推荐
android之各种View常用xml属性,可以收藏一下,比较全
qlikview常用函数,有讲解,有例子,是了解学习的好资料
QlikView 常用函数QlikView 常用函数QlikView 常用函数
安卓常用组件 ListViewLoad 说明:这是一个可以显示上拉加载更多的ListView. 实现方法: 创建要上拉后要显示的底部 编写自定义的view类继承ListView AndroidAnnotation 说明:安卓开发懒人框架(官网文档) ...
包含常用Android组件的使用
Adblock-Plus:屏蔽广告 JSONView:json格式化,GET请求返回结果自动格式化 advanced rest client:HTTP模拟插件,界面风格优于postman,功能一样
常用的几种调制解调,qam,qpsk,fm,pn码的产生
android开发中常用的工具类和自定义viewandroid开发中常用的工具类和自定义viewandroid开发中常用的工具类和自定义viewandroid开发中常用的工具类和自定义viewandroid开发中常用的工具类和自定义viewandroid开发中...
CREATE VIEW 创建视图 CREATE SEQUENCE 创建序列 常用对象权限: 对象权限是指用户对具体的数据库中的对象所拥有的权限,如:表、视图、序列、存储过程、存储函数。 系统自定义角色:CONNECT、RESOURCE、DBA
数字载波通信系统各种常用调制和解调方式的基本原理及其仿真分桥方法;直序扩频通信基本原理及几个实际系统的仿真分析举例;结合SystemView专业扩展库,IS-95的窄带CDMA系统、EN 300 744的DVB系统和3GPP的WCDMA系统...
ViewPlipper常用方法: setInAnimation:设置View进入屏幕时候使用的动画 setOutAnimation:设置View退出屏幕时候使用的动画 showNext:调用该函数来显示ViewFlipper里面的下一个View showPrevious:调用该函数来显示...
自定义view:简单了解Paint常用设置,Canvas的常用方法;
systemview常用图符功能表[汇编].pdf
自定义 RadiusView,包含常用的 Layout 和 View,方便扩展
本文实例讲述了Android开发中获取View视图宽与高的常用方法。分享给大家供大家参考,具体如下: 一、根据WindowManager管理器获得 1)这两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后...
环境:VS2017+Qt5.14.2 环境匹配可以运行成功 功能: 1:实现了基本的图形:矩形、正方形、圆形、三角形、多线段、曲线的绘制 2:鼠标实时绘制图形。鼠标按下后开始绘制,再次按下后停止绘制。 ...
fixbug 博文链接:https://hudeyong926.iteye.com/blog/1276621
常用工具:windows开发常用工具,亲测好用,使用平台为windows的32位系统。其他平台未验证
这里将几个常用的view放在了一起,包括随滚动逐渐显示标题栏,伸缩的TextView,圆形头像,选取手机中的图片并截图
systemview实例模型,包含了很多常用模型,非常实用