android滑动手势

忘了从哪学的了,感谢原作者写的很清楚


代码

package com.sl.quwei.ui.manage;import android.app.Activity;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.ViewGroup.LayoutParams;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.TextView;import android.widget.ViewFlipper;import com.sl.quwei.R;/** * Created by IntelliJ IDEA. * User: wulong * Date: 11-10-29 * Time: 上午6:23 * To change this template use File | Settings | File Templates. */public class AggTestActivity extends Activity implements OnGestureListener {    private GestureDetector detector;    private ViewFlipper flipper;    /**     * Called when the activity is first created.     */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.agg_test);        flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper01);        flipper.addView(addButtonByText("按钮"), new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));        detector = new GestureDetector(this);    }    public View addButtonByText(String text) {        Button btn = new Button(this);        btn.setText(text);        return btn;    }    public View addTextByText(String text) {        TextView tv = new TextView(this);        tv.setText(text);        tv.setGravity(1);        return tv;    }    @Override    public boolean onTouchEvent(MotionEvent event) {        Log.i("Fling", "Activity onTouchEvent!");        return this.detector.onTouchEvent(event);    }    @Override    public boolean onDown(MotionEvent e) {        // TODO Auto-generated method stub        return false;    }    /**     * 监听滑动     */    @Override    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,                           float velocityY) {        // TODO Auto-generated method stub        Log.i("Fling", "Fling Happened!");        if (e1.getX() - e2.getX() > 120) {            this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));            this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));            this.flipper.addView(addTextByText("文本框"), new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));            this.flipper.showNext();            return true;        } else if (e1.getX() - e2.getX() < -120) {            this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));            this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));            this.flipper.showPrevious();            return true;        }        return true;    }    @Override    public void onLongPress(MotionEvent e) {        // TODO Auto-generated method stub    }    @Override    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,                            float distanceY) {        // TODO Auto-generated method stub        return false;    }    @Override    public void onShowPress(MotionEvent e) {        // TODO Auto-generated method stub    }    @Override    public boolean onSingleTapUp(MotionEvent e) {        // TODO Auto-generated method stub        return false;    }}

配置文件

agg_test.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="fill_parent"              android:layout_height="fill_parent">    <ViewFlipper android:id="@+id/ViewFlipper01"                 android:layout_width="fill_parent"                 android:layout_height="fill_parent">    </ViewFlipper></LinearLayout>

res\anim文件夹下放置配置文件push_left_in.xml、push_left_out.xml、push_right_in.xml、push_right_out.xml

写法:push_left_in.xml文件

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="100%p" android:toXDelta="0"android:duration="500" /><alpha android:fromAlpha="0.1" android:toAlpha="1.0"android:duration="500" /></set>

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="0" android:toXDelta="-100%p"android:duration="500" /><alpha android:fromAlpha="1.0" android:toAlpha="0.1"android:duration="500" /></set>

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="0" android:toXDelta="100%p"android:duration="500" /><alpha android:fromAlpha="1.0" android:toAlpha="0.1"android:duration="500" /></set>

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="0" android:toXDelta="100%p"android:duration="500" /><alpha android:fromAlpha="1.0" android:toAlpha="0.1"android:duration="500" /></set>


更多相关文章

  1. Android之关于手势操作图片的缩放与移动
  2. Android Gesture 手势识别
  3. Android 随手势进行3D旋转的源码
  4. android 上下左右手势判断 根据别人的改的
  5. android http json请求3种不同写法
  6. Android自定义view四手势缩放移动的ImageView
  7. Android作业:手势识别
  8. Android 图片手势缩放自定义View

随机推荐

  1. android捕获Home键的方法
  2. Android分别使用HTTP协议和TCP协议实现上
  3. WebRTC Android(安卓)源码编译
  4. android开机自动唤醒屏幕、打开锁屏页并
  5. Android 选项卡实现
  6. 【Android】Android如何查看分区情况
  7. 下载、更新Android(安卓)SDK慢的解决方案
  8. android用户界面之SeekBar教程实例汇总
  9. Android Service教程
  10. android轻量框架五__配置界面