王学岗手势识别(下)

来源:互联网 发布:seo实战密码 编辑:程序博客网 时间:2024/06/09 20:49

我们通过手势识别做出类似ViewPager的效果,
看下我们的MainActivity

package com.example.gesturedetectortest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.GestureDetector;import android.view.GestureDetector.OnGestureListener;import android.view.MotionEvent;import android.widget.Toast;public class MainActivity extends Activity {    private GestureDetector gestureDetector;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        gestureDetector = new GestureDetector(this, new OnGestureListener() {            // 监听各种事件            @Override            public boolean onSingleTapUp(MotionEvent e) {                // 抬起(单指)                return false;            }            @Override            public void onShowPress(MotionEvent e) {                // 按下并松开,短按            }            @Override            public boolean onScroll(MotionEvent e1, MotionEvent e2,                    float distanceX, float distanceY) {                // 滚动                return false;            }            @Override            public void onLongPress(MotionEvent e) {                // 长按            }            @Override            public boolean onFling(MotionEvent e1, MotionEvent e2,                    float velocityX, float velocityY) {                // 滑动,滑动动作很快,用户按下滑动并松开                // 监听滑动的速度                if (Math.abs(velocityX) < 100) {                    return true;// 消耗该事件                }                // 判断左右滑动                if (e1.getRawX() - e2.getRawX() > 100) {                    Toast.makeText(MainActivity.this, "向左滑动",                            Toast.LENGTH_SHORT).show();                    startActivity(new Intent(MainActivity.this,                            ThirdActivity.class));                    return true;                }else if(e2.getRawX()-e1.getRawX()>100){                    Toast.makeText(MainActivity.this, "向右滑动",                            Toast.LENGTH_SHORT).show();                    startActivity(new Intent(MainActivity.this,                            SecondActivity.class));                    return true;                }                return false;            }            @Override            public boolean onDown(MotionEvent e) {                //                return false;            }        });    }    @Override    public boolean onTouchEvent(MotionEvent event) {        // 把触摸事件传给手势识别类        gestureDetector.onTouchEvent(event);        return super.onTouchEvent(event);    }}

在添加两个Activity集成MainActivity,

package com.example.gesturedetectortest;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.widget.TextView;public class SecondActivity extends MainActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        TextView tv=new TextView(this);        tv.setText("第二个");        tv.setBackgroundColor(Color.RED);        setContentView(tv);    }}
package com.example.gesturedetectortest;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.widget.TextView;public class ThirdActivity extends MainActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    TextView tv=new TextView(this);    tv.setText("第三个");    tv.setBackgroundColor(Color.BLUE);    setContentView(tv);}}
0 0
原创粉丝点击