`
李村民
  • 浏览: 38427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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)用的的是最多的:

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.  } 
分享到:
评论

相关推荐

    qlikview常用函数

    以下是从给定文件中提炼出的QlikView常用函数的知识点: 1. 基本统计函数 - SUM函数:用于对数据集的数值字段进行求和。可以配合不同的修饰符使用,如distinct(去重)、total(对所有值求和)等,也可以应用set_...

    android之各种View常用xml属性

    android之各种View常用xml属性,可以收藏一下,比较全

    Android View常用组件

    本教程将深入探讨Android View常用组件及其使用方法。 一、按钮(Button) 按钮是Android应用中最基本的交互元素,用户通过点击按钮执行特定操作。在XML布局文件中,我们可以使用`<Button>`标签来创建按钮,并通过`...

    Android代码-安卓常用组件

    安卓常用组件 ListViewLoad 说明:这是一个可以显示上拉加载更多的ListView. 实现方法: 创建要上拉后要显示的底部 编写自定义的view类继承ListView AndroidAnnotation 说明:安卓开发懒人框架(官网文档) ...

    Android中ListView常用方式:使用BaseAdapter

    4. `getView(int position, View convertView, ViewGroup parent)`: 这是最重要的方法,负责为ListView创建或复用视图。convertView是可重用的视图,如果为空则需要新建一个;否则,可以对其进行修改并返回。 在...

    view agent静默安装方法

    ### View Agent静默安装方法详解 #### 一、概述 在企业级环境中,为了提高部署效率及减少人工干预,静默安装(Silent Installation)成为了一种常用的软件部署方式。对于VMware View Agent的静默安装,本文将详细...

    Android中ImageButton的常用方法一览.pdf

    下面将详细讲解`ImageButton`的一些核心概念、属性以及常用方法。 1. `ImageButton`类的定义: `ImageButton`是`ImageView`的子类,因此它具有显示图像的基本功能,同时又具备`Button`的交互特性。在Android框架中...

    导航控制器UINavigationCotroller的常用方法汇总

    这篇博客文章“导航控制器UINavigationController的常用方法汇总”显然是对这个核心组件进行了深入探讨。以下是对UINavigationController的一些关键知识点的详细解释: 1. **初始化方法**: - `init(nibName:...

    Android-自定义RadiusView包含常用的Layout和View方便扩展

    本主题“Android-自定义RadiusView包含常用的Layout和View方便扩展”聚焦于创建一个自定义的RadiusView,它不仅具有可定制的圆角特性,还集成了常见的Layout和View组件,使得开发者能更便捷地进行二次开发和功能添加...

    j2ee常用方法.

    在J2EE(Java 2 Platform, Enterprise Edition)开发中,掌握一些常用的方法对于提高效率和优化代码至关重要。这些方法通常涉及到与数据库的交互、对象的创建与管理、请求处理等多个方面。以下是一些关键的知识点: ...

    Android中父View和子view的点击事件

    3. 在父View的`onTouchEvent()`方法中判断点击位置是否在子View范围内,如果是,则直接处理,否则让事件继续传递。 五、源码分析 Android系统的事件分发主要由View的`dispatchTouchEvent()`、`onTouchEvent()`、`...

    Masonry 入门常用方法-1

    本教程将介绍Masonry的入门及几种常用方法。 首先,Masonry的核心理念是基于“约束”的编程,它通过一套简洁的API来创建和管理NSLayoutConstraint。Masonry提供了`MASConstraintMaker`和`MASConstraintMaker`两个...

    Android中ImageView的常用方法一览.pdf

    1. **setOnClickListener(View.OnClickListener l)**:这个方法是View类中的继承方法,用于为ImageView设置点击事件监听器。当用户点击ImageView时,传入的OnClickListener对象的onClick方法会被调用。你可以在这里...

    QlikView 常用函数

    下面,我们将详细介绍QlikView中一些常用函数的知识点。 1. 基本统计函数 - SUM函数:用于计算数值表达式的总和。可以应用于整个数据集,也可以根据不同的条件进行分类求和。SUM函数的使用可以是简单的字段求和,...

    ios View背景设置

    本文将详细讲解三种常用的方法:通过添加UIImageView、获取图片颜色作为背景以及利用图片路径设置背景。以下是对这些方法的深入探讨: 首先,我们来看第一种方法——添加UIImageView。UIImageView是iOS SDK中的一个...

    通过透明的View展示透明的界面

    - 透明度变化也是一种常用的动画效果,可以使用`ObjectAnimator`或`ValueAnimator`来实现View透明度的平滑过渡。 9. **状态栏和导航栏的透明**: - 从Android 5.0(Lollipop)开始,可以通过`getWindow()....

    Android实现在xml文件中引用自定义View的方法分析

    这种方法是最常用的方法,通过指定自定义View的类名和布局参数来实现自定义View的引用。在上面的代码中,我们指定了自定义View的类名为com.test.copytext.CopyText,并设置了其宽度和高度。 方法二:<view class=...

    几个常用view集合demo

    "几个常用view集合demo"这个项目显然聚焦于展示和实践一些常见的Android视图组件及其交互效果。下面,我们将深入探讨这些关键组件以及如何实现它们。 首先,随滚动逐渐显示的标题栏通常被称为"滑动返回"或者"沉浸式...

    后端开发者常用的谷歌插件:Adblock-Plus、JSONView、advanced rest client

    它提供了一个简洁且易于使用的界面,支持多种HTTP方法(如GET、POST、PUT、DELETE等),可以方便地发送请求并查看响应。与Postman相比,advanced rest client的界面可能更符合部分开发者的个人喜好,而且同样支持...

Global site tag (gtag.js) - Google Analytics