使用手势模拟左右滑动
2016-05-07 00:01
239 查看
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.androiddemoset.MainActivity" > <TextView android:background="#000000" android:layout_centerInParent="true" android:layout_width="100dp" android:layout_height="100dp" android:textColor="#ffffff" android:text="@string/hello_world" android:id="@+id/tv" android:gravity="center" /> </RelativeLayout>
package com.example.androiddemoset; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; public class MainActivity extends ActionBarActivity implements OnTouchListener{ private GestureDetector detector; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); detector=new GestureDetector(this, new MyListener()); tv=(TextView)findViewById(R.id.tv); tv.setClickable(true); tv.setOnTouchListener(this); } private class MyListener extends SimpleOnGestureListener{ @Override// e1: 第一个MotionEvent_DOWN事件 e2: 最后的MotionEvent_UP事件 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //触发条件:滑动距离大于50像素,水平移动速度大于50像素/秒 int min_fling_distance=50; int min_velocityX=100; //判断左滑事件 if(e1.getX()-e2.getX()>min_fling_distance&&Math.abs(velocityY)>min_velocityX){ Log.e("onFling", "左滑"); } //判断右滑事件 if(e2.getX()-e1.getX()>min_fling_distance&&Math.abs(velocityX)>min_velocityX){ Log.e("onFling", "右滑"); } return super.onFling(e1, e2, velocityX, velocityY); } } @Override public boolean onTouch(View arg0, MotionEvent arg1) { return detector.onTouchEvent(arg1); } }
相关文章推荐
- c++作业5
- 开发第一个应用之前你需要知道的六件事
- 僵死进程
- Java 基础 -1 - 内存管理之内存分配
- Java 基础 -2 关于final
- 微信三级分销|河南网中网B2C微商城三级分销系统源码|微店分销软件怎么选
- JavaScript放头部不执行的情况(针对新手)
- 二叉树中两个结点的距离
- java抽象类和接口类
- java中Arrays.sort()实现原理
- 关于默认构造函数
- 给我深刻印象的教育片段
- 验证java环境是否安装成功
- Ubuntu配置lamp环境
- 开发汇总2
- 前端实现文件下载的两种方式
- 黑程序猿?IOS程序员爱自黑?
- [Python]Python 经典例题
- Git系列笔记之六:其他应用
- 排序算法(一)冒泡排序