在Android游戏开发之旅二中我们讲到了View和SurfaceView的区别,
今天Android123从View类开端着重的引见Android图形显现基类的相关办法和留意点。
自定义View的常用办法:
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)用的的是最多的:
@Override
protectedvoidonDraw(Canvascanvas){
//这里我们直接运用canvas对象处置当前的画布,比方说运用Paint来选择要填充的颜色
PaintpaintBackground=newPaint();
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中运用相似
@Override
protectedParcelableonSaveInstanceState(){
Parcelablep=super.onSaveInstanceState();
Bundlebundle=newBundle();
bundle.putInt(“x”,pX);
bundle.putInt(“y”,pY);
bundle.putParcelable(“android123_state”,p);
returnbundle;
}
@Override
protectedvoidonRestoreInstanceState(Parcelablestate){
Bundlebundle=(Bundle)state;
dosomething(bundle.getInt(“x”),bundle.getInt(“y”));//获取方才存储的x和y信息
super.onRestoreInstanceState(bundle.getParcelable(“android123_state”));
return;
}
在View中假如需求强迫调用绘制办法onDraw,能够运用invalidate()办法,它有很多重载版本,同时在线程中的
postInvailidate()办法将在Android游戏开发之旅六中的自定义View完好篇讲到。
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com