Android自定view的一些方法的说明

    xiaoxiao2021-03-25  76

    自定义view中一些方法的说明明

    1.onFinishInflate()

    回调方法,当应用从布局文件中加载该view并构建界面之后,就会回调这个方法

    2.onMeasure(int,int)

    测量该view以及它的子view的宽高(子view只是相对于viewgroup) 这里要注意的是:获取的宽和高,需要通过MeasureSpec这个类来转换, 因为onMeasure返回的是一个32位的int值,高2位是测量的模式,低30位是测量的大小 它常用的三个函数: 1 static int getMode(int measureSpec):根据提供的测量值(格式)提取模式 2 static int getSize(int measureSpec):根据提供的测量值(格式)提取大小值(这个大小也就是我们通常所说的大小) 3 static int makeMeasureSpec(int size,int mode):根据提供的大小值和模式创建一个测量值(格式) 三种测量模式: (1) MeasureSpec.EXACTLY layout_width 或者 layout_height 设置为类似于“100dp” 或者 match_parent 使用的是这个模式 (2)MeasureSpec.AT_MOST layout_width 或者 layout_height 设置为 wrap_content 使用的是这个模式 (3) MeasureSpec.UNSPECIFIED 他不指定大小测量模式,View像多大就多大,通常情况下在绘制自定义view时才会使用。

    3.onLayout(boolean,int,int,int,int)

    当这个组件要分配它的子view的位置和大小的时候,就需要用到这个方法

    4.onSizeChanged(int,int,int,int)

    当组件的大小发生变化的时候会回调这个方法

    5.onDraw(Canvas)

    当组件要绘制内容的时候就会回调这个方法;这里需要注意的是:当想要刷新view的效果时,可以调用方法invalidate() 就会重新回调onDraw(Canvas)方法。

    6.onKeyDown(int,KeyEvent)

    当手指从某个键被按下时触发这个方法(软件键盘上的按键,还有功能键)

    7.onKeyUp(int,KeyEvent)

    当手指某个键上离开的时候触发这个方法

    8.onTrackballEvent(MotionEvent)

    当发生轨迹球事件是触发这个方法(这个轨迹球是个什么东西我也不了解,百度资料也不多,感觉像是游戏中的操作方向的那个球球)

    9.onTouchEvent(MotionEvent)

    当触摸屏幕时触发的回调方法

    10.onWindowFocusChanged(boolean)

    当组件得到和失去焦点的时候触发这个方法

    11.onAttachedToWindow()

    当把该组件放入某个窗口时触发该方法,而他触发的时机时在activity的onResume()方法之后 这个可以通过打印log日志查看出来当然具体的可以看这篇博客 这是从那里coyp的图片:

    查看博客

    12.onDetachedFromWindow()

    和上面的方法相反,是从某个窗口上分离时触发这个方法

    13.onWindowVisibilityChanged(int)

    当包含该组件的窗口发生可见性变化时触发这个方法
    转载请注明原文地址: https://ju.6miu.com/read-17575.html

    最新回复(0)