自定义view
2015-06-12 13:24
239 查看
继承view有三个构造方法:
public View (Context context)是在java代码创建视图的时候被调用(使用new的方式),如果是从xml填充的视图,就不会调用这个
public View (Context context, AttributeSet attrs)这个是在xml创建但是没有指定style的时候被调用
public View (Context context, AttributeSet attrs, int defStyle)这个是在第二个基础上添加style的时候被调用的
在view里面有touchevent这个方法,这个方法回调了触摸屏幕的事件,有MotionEvent.ACTION_MOVE,MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP等,返回值是一个布尔值,如果返回true意味着这次的触摸事件被消费了,而返回false的话,就在当前位置对本次触摸不做处理或者不能完全处理,还需要继续将本次事件分发给后续view或者viewgroup响应
onClick和onLongClick是在super.onTouchEvent方法里被调用的,onClick是在ACTION_UP的时候可能被调用,而onLongClick是在ACTION_DOWN的时候可能被调用。所以在这里我们虽然去掉了 return super.onTouchEvent(event);这一句,但是super.onTouchEvent(event);是需要保留的。我们可以将它放到onTouchEvent方法的第一句。
点击事件的判断:
由于onClick点击的判断只是单纯的检测ACTION_DOWN之后是否有一个ACTION_UP,如果有,那么就判断为一次点击事件,至于中间的过程是否滑动了,它却不管。
scrollTo(int x, int y) 是将View中内容滑动到相应的位置,参考的坐标系原点为parent View的左上角。
public View (Context context)是在java代码创建视图的时候被调用(使用new的方式),如果是从xml填充的视图,就不会调用这个
public View (Context context, AttributeSet attrs)这个是在xml创建但是没有指定style的时候被调用
public View (Context context, AttributeSet attrs, int defStyle)这个是在第二个基础上添加style的时候被调用的
在view里面有touchevent这个方法,这个方法回调了触摸屏幕的事件,有MotionEvent.ACTION_MOVE,MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP等,返回值是一个布尔值,如果返回true意味着这次的触摸事件被消费了,而返回false的话,就在当前位置对本次触摸不做处理或者不能完全处理,还需要继续将本次事件分发给后续view或者viewgroup响应
onClick和onLongClick是在super.onTouchEvent方法里被调用的,onClick是在ACTION_UP的时候可能被调用,而onLongClick是在ACTION_DOWN的时候可能被调用。所以在这里我们虽然去掉了 return super.onTouchEvent(event);这一句,但是super.onTouchEvent(event);是需要保留的。我们可以将它放到onTouchEvent方法的第一句。
点击事件的判断:
由于onClick点击的判断只是单纯的检测ACTION_DOWN之后是否有一个ACTION_UP,如果有,那么就判断为一次点击事件,至于中间的过程是否滑动了,它却不管。
scrollTo(int x, int y) 是将View中内容滑动到相应的位置,参考的坐标系原点为parent View的左上角。
调用scrollTo(100, 0)表示将View中的内容移动到x = 100, y = 0的位置
相关文章推荐
- Linux netstat +awk 看攻击IP
- 基本标识
- 可以做朋友吗 是一段故事的开始 还可以做朋友吗 是一段故事的结束
- ubuntu 14.04 LTS 中安装音乐软件deepin_music记录
- 最短路径算法 dijkstra + floyd + spfa 【记录 总结】
- Socket套接字通信原理
- 使用cocoapods install友盟时报错Error installing UMengAnalytics
- 使用VS2012建立Web测试
- Notification与多线程
- Xcode使用版本
- freemarker 基础
- JavaScript-demo
- A *p=new B;
- 计算器算法的简单实现
- java中的内部类
- Ubuntu 14.04 LTS 下使用校园网客户端DrclientLinux
- 管理SQL2005数据库文件
- win 任务计划
- 将博客搬至CSDN
- 我的第一个原创博客来啦