事件分发基本实现
来源:互联网 发布:松下tda200编程软件 编辑:程序博客网 时间:2024/05/22 08:10
<com.runningsnail.studytouch.FirstFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff0000" > <com.runningsnail.studytouch.SecondRelativeLayout android:layout_width="250dip" android:layout_height="250dip" android:background="#00ff00" android:layout_gravity="center" > <com.runningsnail.studytouch.ThirdTextView android:layout_width="100dip" android:layout_height="100dip" android:background="#0000ff" android:layout_centerInParent="true" /> </com.runningsnail.studytouch.SecondRelativeLayout></com.runningsnail.studytouch.FirstFrameLayout>
public class LogUtils { public static String getEvent( MotionEvent event) { String motionEvent=""; switch (event.getAction()) { case MotionEvent.ACTION_DOWN: motionEvent+="按下"; break; case MotionEvent.ACTION_MOVE: motionEvent+="滑动"; break; case MotionEvent.ACTION_UP: motionEvent+="离开"; break; default: break; } return motionEvent; } public static void printLog(Class mClass,String content,MotionEvent ev){ Log.d(mClass.getSimpleName(), String.format(content, getEvent(ev))); } public static void printEventLog(Class mClass,String position,boolean isDispatch, MotionEvent event){ Log.d(mClass.getSimpleName(), position+"-来一个任务<"+getEvent(event)+">:需要给分派给下一届人做吗?"+isDispatch); }}public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * onInterceptTouchEvent 拦截事件 * dispatchTouchEvent 分派事件 * onTouchEvent 处理事件 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { LogUtils.printLog(getClass(), "【开发经理】来一任务<%s>:需要{分派}给下一级", ev); return super.dispatchTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { boolean is=false; LogUtils.printLog(getClass(), "【开发经理】自己{处理}任务<%s>:连组长都不会,算了,这任务我还是自己来吧!"+is, event); return is; }}public class FirstFrameLayout extends FrameLayout { public FirstFrameLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { LogUtils.printLog(getClass(), "【开发组长】来一任务<%s>:需要{分派}给下一级", ev); return super.dispatchTouchEvent(ev); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean is=false; LogUtils.printLog(getClass(), "【开发组长】自己分派一任务<%s>:需要{拦截}吗?"+is, ev); return is; } @Override public boolean onTouchEvent(MotionEvent event) { boolean is=true;// 开发组长设置为true,下边的人都干不了,返回给我,我处理; LogUtils.printLog(getClass(), "【开发组长】自己{处理}任务<%s>:这任务怎么这么难,底下人都不会,还是自己干吧。可是任务能解决嘛?"+is, event); return is; }}public class SecondRelativeLayout extends RelativeLayout { public SecondRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { LogUtils.printLog(getClass(), "【程序员】来一任务<%s>:需要{分派}给下一级", ev); return super.dispatchTouchEvent(ev); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean is=false; LogUtils.printLog(getClass(), "【程序员】自己分派一任务<%s>:需要{拦截}吗?"+is, ev); return is; } @Override public boolean onTouchEvent(MotionEvent event) { boolean is=false; LogUtils.printLog(getClass(), "【程序员】自己{处理}任务<%s>:实习生毕竟是实习生啊,还是自己干吧。可是任务能解决嘛?"+is, event); return is; }}public class ThirdTextView extends TextView { public ThirdTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent event) { LogUtils.printLog(getClass(), "【实习生】来一任务<%s>:需要{分派}给下一级吗?我想分派,我底下没人了,怎么办?我还是老老实实的干吧", event); return super.dispatchTouchEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { boolean is=false;//我处理不了; String result; if(is){ result="皇天不负有心人,【解决了】。"; }else{ result="皇天就负有心人,无能为力,【没解决】。"; } LogUtils.printLog(getClass(), "【实习生】自己{处理}任务<%s>:查阅资料,埋头苦干,一声不吭的干了起来。"+result, event); return is; }}
阅读全文
0 0
- 事件分发基本实现
- Android事件分发基本流程
- 事件与委托---实现事件分发中心
- 一接口多实现“事件分发”实现
- Eventbus是如何实现事件分发的
- Android_RxJava代替EventBus实现事件分发
- 使用Netty4实现基本的消息分发
- 使用Netty4实现基本的消息分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- 事件分发
- java编译器原理 javac
- ubuntu 14.04解压zip文件出现乱码
- LeetCode 202. Happy Number
- 我只想很快找份Linux系统相关工作
- Linux进程管理预习笔记
- 事件分发基本实现
- 王怡 | 默想主日(35-55)
- 最详细的GIT操作大全
- MySQL photo
- js 字符串转换成数字的三种方法
- 《剑指offer》合并两个有序链表
- AJAX--XMLHttpRequest用法介绍
- ASP.NET Web Pages
- BF朴素查找算法(查找子串)