研究了Rexsee针对Android原生UI控件的扩展rexsee
JavaView,直接使用JS调用即可。重点针对触屏事件做了整理,有兴趣的TX可以一起探讨。。
总的来说,rexseeJavaView使得开发者可以捕获使用rexseeJavaView对象创建的Android原生View的运行时事件。
触屏事件
【说明】 触屏事件监听默认是禁止的,必须在样式表中设置样式来启动某个View的触屏事件监听机制。
rexseeJavaView.setStyle('test','event_touch:true;event_touchmove:true;');
alert('设置完毕!');
rexseeJavaView.setStyle('test','event_touch:false;event_touchmove:false;');
alert('设置完毕!');
【事件】 void onJavaViewTouchDown(String id, float x, float y)
【说明】 当手指在屏幕上按下时触发。
【参数】 id:View的ID。
x:触屏点的水平位置。
y:触屏点的垂直位置。
示例代码
- function onJavaViewTouchDown(id,x,y){
- rexseeJavaView.setStyle(id,'background-color:#ffff00;');
- }
复制代码 【事件】 void onJavaViewTouchUp(String id, float x, float y)
【说明】 当手指从屏幕上离开时触发。
【参数】 id:View的ID。
x:触屏点的水平位置。
y:触屏点的垂直位置。
示例代码
- function onJavaViewTouchUp(id,x,y){
- rexseeJavaView.setStyle(id,'background-color:#ff0000;');
- }
复制代码 【事件】 void onJavaViewTouchCancel(String id, float x, float y)
【说明】 当触屏动作取消时触发。
【参数】 id:View的ID。
x:触屏点的水平位置。
y:触屏点的垂直位置。
示例代码
- function onJavaViewTouchCancel(id,x,y){
- alert("onJavaViewTouchCancel:"+id+","+x+","+y);
- }
复制代码 【事件】 void onJavaViewTouchMove(String id, float x, float y)
【说明】 当手指在屏幕上移动时触发。注意,默认并不会捕捉TouchMove事件,需要用rexseeJavaView.listenToTouchMove(id,true)开始捕捉,用rexseeJavaView.listenToTouchMove(id,false)停止捕捉。用rexseeJavaView.isListeningToTouchMove(id)可以判断某个View当前是否正在监听TouchMove事件。
【参数】 id:View的ID。
x:触屏点的水平位置。
y:触屏点的垂直位置。
示例代码
- function onJavaViewTouchMove(id,x,y){
- document.getElementById('touchmove').innerHTML = "onJavaViewTouchMove:"+x+","+y;
- }
复制代码 【事件】 void onJavaViewClick(String id, float x, float y)
【说明】 当发生单击时触发。
【参数】 id:View的ID。
x:触屏点的水平位置。
y:触屏点的垂直位置。
示例代码
- function onJavaViewClick(id,x,y){
- alert("onJavaViewClick:"+id+","+x+","+y);
- }
复制代码 【事件】 void onJavaViewDoubleClick(String id, float x, float y)
【说明】 当发生双击时触发。
【参数】 id:View的ID。
x:触屏点的水平位置。
y:触屏点的垂直位置。
示例代码
- function onJavaViewDoubleClick(id,x,y){
- alert("onJavaViewDoubleClick:"+id+","+x+","+y);
- }
复制代码 其它还有长按时触发:void onJavaViewLongPress(String id, float x, float y);快速划屏(试图快速滚动内容)时触发:void onJavaViewFling(String id, float x1, float y1, float x2, float y2);慢速划屏(试图慢速滚动内容)时触发:void onJavaViewTouchScroll(String id, float x1, float y1, float x2, float y2)
示例代码类似,不再多说。。不明白的可以在Rexsee社区里查看具体的示例: