自定义View想要实现对双击事件的监听,必须实现android.view.GestureDetector.OnGestureListener接口,具体实现代码如下:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import android.widget.LinearLayout;
import android.widget.TextView;
public class touchGesture extends Activity implements OnGestureListener {
private LinearLayout main;
private TextView viewA;
private GestureDetector gestureScanner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gestureScanner = new GestureDetector(this);
gestureScanner.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener(){
public boolean onDoubleTap(MotionEvent e) {
viewA.setText("-" + "onDoubleTap" + "-");
//双击时产生一次
Log.v("test", "onDoubleTap");
return false;
}
public boolean onDoubleTapEvent(MotionEvent e) {
//双击时产生两次
Log.v("test", "onDoubleTapEvent");
return false;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
viewA.setText("-" + "onSingleTapConfirmed" + "-");
//短快的点击算一次单击
Log.v("test", "onSingleTapConfirmed");
return false;
}
});
main = new LinearLayout(this);
main.setBackgroundColor(Color.GRAY);
main.setLayoutParams(new LinearLayout.LayoutParams(320,480));
main.setOrientation(LinearLayout.VERTICAL);
viewA = new TextView(this);
viewA.setBackgroundColor(Color.YELLOW);
viewA.setTextColor(Color.BLACK);
viewA.setTextSize(16);
viewA.setLayoutParams(new LinearLayout.LayoutParams(320,50));
main.addView(viewA);
setContentView(main);
}
@Override
public boolean onTouchEvent(MotionEvent me) {
return gestureScanner.onTouchEvent(me);
}
@Override
public boolean onDown(MotionEvent e) {
//viewA.setText("-" + "DOWN" + "-");
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//viewA.setText("-" + "FLING" + "- "+velocityX + "- "+velocityY);
Log.v("test", "onFling "+e1.getX()+" "+e2.getX());
return true;
}
@Override
public void onLongPress(MotionEvent e) {
//viewA.setText("-" + "LONG PRESS" + "-");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
//viewA.setText("-" + "SCROLL" + "- "+distanceX + "- "+distanceY);
Log.v("test", "onScroll "+e1.getX()+" "+e2.getX());
return true;
}
@Override
public void onShowPress(MotionEvent e) {
//viewA.setText("-" + "SHOW PRESS" + "-");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Log.v("test", "onSingleTapUp");
//viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);
return true;
}
}
分享到:
相关推荐
自定义View, 1. 自定义一个Runnable线程TouchEventCountThread , 用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击...
Android自定义view,实现多画面播放器,可以通过设置参数来设置画面个数,双击某个画面可以全屏显示这个画面,并暂停其他画面的播放,可以通过左滑或右滑来播放上一个或下一个视频
但是不知为什么这个插件没有自带双击事件。 经过多次测试,使用方法$(‘#tree’).dblclick( function () {})和方法$(‘#tree’).on(‘dblclick’,function(){})都不起作用!百思不得其解。最后救助大神,问题解决了...
本文Demo都是在自定义View中进行的,文末有下载链接 View的位置参数 MotionEvent屏幕触摸事件 GestureDetector手势检测(单击,双击,长摁,滑动) 二、View的位置参数 1、原始位置(不受偏移量影响,单位是...
本文通过一个自定义控件ZoomImageView,实现多点触控(移动,多点缩放),双击放大缩小,并在放大缩小过程自解决边界白边的情况,同时结合ViewPager的使用,并解决存在的事件冲突情况。
效果图说明:功能展示图中的效果是Double Image(With delayed load)项的效果,里面有两张图,其中下面一张图会延迟出现,默认图片为原始大小,可通过多指缩放或者快速双击实现放大或缩小 。
自定义了一个图片浏览器,支持单击消失,双击放大,下拉隐藏,双指放大等功能,支持自定义view配置UI。
首先从网络中下载得到Exview外力工具的安装程序,并按照默认设置将其正确安装到本地工作站系统中,待安装操作完毕后再双击系统桌面上的Exview快捷控制图标,进入该程序的主操作界面; 在该主操作界面中单击“选项...
通过自定义View实现Android飞机大战小游戏,游戏玩法很简单,可以锻炼玩家的反应能力。开启背景音乐进行新的游戏,控制飞机移动来消灭敌机获取更多的分数,在移动过程中避免与敌机发生碰撞。主界面可以查看自己的...
xml 构建优美的 UI, 自定义 View, 自定义 style / theme, 双击返回退出, 持久化 Service,Service 与 Activity 的通讯, 设置页面, 分享, Android 命名规范, 相对来说优雅的代码, Android Studio 以及 ...
用 xml 构建优美的 UI, 自定义 View, 自定义 style / theme, 双击返回退出, 持久化 Service,Service 与 Activity 的通讯, 设置页面, 分享, Android 命名规范, 相对来说优雅的代码, Android Studio 以及 ...
界面采用bootstrap和JEasyUI技术实现,提供三种任务运行规则:一次性、周期性、自定义 1、一次性(i:立即运行;ii:在规定的时间刻运行) 2、周期性(i:按小时;ii:按天 iii:按周; iv:按月(日);v: 按月(星期) ...
交互响应事件都是通过手势的操作完成的,如点击、或双击、或长按,这些交互都是在视图中完成的,但是不同的视图可能会有不同的交互,有时候就会出现交互响应事件冲突的情况。这时候就需要处理事件优先级,以便达到想...
|--自定义view的属性 |--自定义下拉刷新ListView |--自定义动画资源 |--自定义常用小控件 |--自定义控件之小技巧 |--自定义控件风格和全局背景 |--自定义组合控件 |--自定义配置文件资源 |--自定义颜色状态选择资源 ...
自定义多指缩放图片视图效果...效果图说明:功能展示图中的效果是Double Image(With delayed load)项的效果,里面有两张图,其中下面一张图会延迟出现,默认图片为原始大小,可通过多指缩放或者快速双击实现放大或缩小
1、双击,RecyclerView整体放大缩小 2、两个手指手势,RecyclerView整体放大缩小 3、启用和禁用整体缩放 原理 CSDN Preview Gif: 应用 仿腾讯漫画的APP:https://github.com/zhhr1122/z_comic_new
重绘了录制视频和录音时的两个自定义view,可在原本基础上进行二次开发 提供了视频截图方法,支持双击放大,支持自动对焦 视频录制暂时使用 SurfaceView Camera , 后续会升级为 TextureView Camera2 简单的加了
0427 如何实现双击表格行超级链接到另一页并传递参数 235 0428 如何实现单击表格行改变颜色 235 0429 鼠标移动改变表格行的颜色 235 0430 如何在Web页中使用表格控件 236 10.5 Web.Config文件的配置 237 ...
在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...