为了账号安全,请及时绑定邮箱和手机立即绑定

activity中的触摸,滑动事件

标签:
Android

今天要做一个对界面触摸滑动的事件,搜索资料后做了出来,在这分享下自己做的结果,也希望能有更好的解决方法。

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;
    }
}

原文链接:http://www.apkbus.com/blog-630917-58812.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消