北大青鸟

首页 > 安卓技术教程

站内公告

Android游戏开发(三)View类用法详解

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区时间:06-06
导读:在上一节View类与SurfaceView类中,讲解了View类和SurfaceView类的区别。本节将详解View类的用法,从View类开始着重的介绍Android图形显示基类的相关方法和注意点。

View类常用方法

  自定义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实现的一些基本接口的回调方法。

  View类方法的重载

  一般我们需要处理画布的显示时,重写onDraw(Canvas)用的的是多的:

  @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作为为起点,以当前画布的宽度和高度为重点即整块画布来填充。 具体的后面会讲,在Canvas中我们可以实现画路径,图形,区域,线。而Paint作为绘画方式的对象可以设置颜色,大小,甚至字体的类型等等。

  }

  当然还有就是处理窗口还原状态问题(一般用于横竖屏切换),除了在Activity中可以调用外,开发游戏时我们尽量在View中使用如下代码:

  @Override

  protected Parcelable onSaveInstanceState() {

  Parcelable p = super.onSaveInstanceState();

  Bundle bundle = new Bundle();

  bundle.putInt("x", pX);

  bundle.putInt("y", pY);

  bundle.putParcelable("android_state", p);

  return bundle;

  }

  @Override

  protected void onRestoreInstanceState(Parcelable state) {

  Bundle bundle = (Bundle) state;

  dosomething(bundle.getInt("x"), bundle.getInt("y")); //获取刚才存储的x和y信息

  r.onRestoreInstanceState(bundle.getParcelable("android_state"));

  return;

  }

  在View中如果需要强制调用绘制方法onDraw,可以使用invalidate()方法,它有很多重载版本,同时在线程中的postInvailidate()方法在后面的教程中会讲到。

    看过该安卓技术教程的还看过

本文标题:Android游戏开发(三)View类用法详解,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于06-06发布于北大青鸟鲁广校区。在上一节View类与SurfaceView类中,讲解了View类和SurfaceView类的区别。本节将详解View类的用法,从View类开始着重的介绍Android图形显示基类的相关方法和注意点。

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

本文地址:https://m.027hpedu.com/html/2736.html

文章标题:Android游戏开发(三)View类用法详解

上一篇:

下一篇:

热点关注

推荐安卓技术教程

热门安卓技术教程

初中生
高中生
大学生
打工者
男生
女生

预约你的精彩未来

预约将免费领取7天课程体验卡

-------请选择试预约课程-------

JAVA
WEB前端
PHP
UI设计
Python
电子商务
视频剪辑
大数据工程师
平面设计

83345人已领取

全国百余家校区

只为您方便就学

北大青鸟鲁广校区

北大青鸟鲁广校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出)

预约到校
领取学习大礼包

首页

热门课程

视频网课

新闻资讯

关于学校

联系学校

预约选课申请

  • 预约时间

    请选择预约时间

  • 预约课程

    请选择预约课程

  • 姓   名
  • 手机号
  • QQ 号
  • 微信号

添加老师微信号

专业老师24小时1对1学习指导

定制专属于你的专属学习方案

微信号:17740513250

复制老师的微信号

复制成功啦

快去微信添加老师为好友吧~

北大青鸟小青

微信号:17740513250

北大青鸟小青

微信号:17740513250

设置备注
小主知道啦