今天要做一个对界面触摸滑动的事件,搜索资料后做了出来,在这分享下自己做的结果,也希望能有更好的解决方法。
package com.example.map; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.LinearLayout; import android.widget.Toast; import com.example.dlb2.R; import com.example.lsyutil.ActionbarTop; import com.example.lsyutil.ActivityTop; public class MapTestData extends ActivityTop implements OnTouchListener,OnGestureListener { @SuppressWarnings("deprecation") private GestureDetector detector = new GestureDetector(this); LinearLayout mapTest; ActionbarTop actionbarTop; // 限制最小移动像素 private int FLING_MIN_DISTANCE = 110; // 定义的Toast提示框显示时间 private int TIME_OUT = 1000; private static final String TAG = "Main"; @Override protected void onCreate(Bundle arg0) { // TODO Auto-generated method stub super.onCreate(arg0); setTopActivity(R.layout.map_test_data); //设置标题栏 setActionbarTop(); mapTest=(LinearLayout) findViewById(R.id.mapTest); mapTest.setOnTouchListener(this); } //设置标题栏属性 public void setActionbarTop() { actionbarTop = getActionBars(); actionbarTop.setTitle("地图测试"); actionbarTop.setTitleColor(Color.parseColor("#FFFFFF")); actionbarTop.setActionbarColor(Color.parseColor("#006ad7")); actionbarTop.findViewById(R.id.backTop).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); } /** * 在按下动作时被调用 */ @Override public boolean onDown(MotionEvent e) { Log.d(TAG, "按下回调"); return false; } /** * 按住时被调用 */ @Override public void onShowPress(MotionEvent e) { Log.d(TAG, "按住不松回调"); } /** * 抬起时被调用 */ @Override public boolean onSingleTapUp(MotionEvent e) { Log.d(TAG, "触发抬起回调"); return false; } /** * 滚动时调用 */ @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } /** * 长按时被调用 */ @Override public void onLongPress(MotionEvent e) { Log.d(TAG, "触发长按回调"); } /** * 手势滑动时别调用 */ @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒 if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) { // 向左滑动 Intent intent=new Intent(); intent.setClass(getApplicationContext(), MultyLocationActivity.class); startActivity(intent); Toast.makeText(this, "向左滑动", TIME_OUT).show(); } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) { // 向右滑动 Toast.makeText(this, "向右滑动", TIME_OUT).show(); } return false; } /** * 重写OnTouchListener的onTouch方法 此方法在触摸屏被触摸,即发生触摸事件(接触和抚摸两个事件)的时候被调用 */ @Override public boolean onTouch(View v, MotionEvent event) { detector.onTouchEvent(event); return true; } }
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦