zoukankan      html  css  js  c++  java
  • Android实现左右滑动效果(转)

    本示例演示在Android中实现图片左右滑动效果。

    主要效果如下图:

     

    程序结构:

    MainActivity文件中代码:

    package com.android.flip;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.GestureDetector.OnGestureListener;
    import android.view.animation.AnimationUtils;
    import android.widget.ImageView;
    import android.widget.ViewFlipper;

    /**
    * Android实现左右滑动效果
    *
    @author Administrator
    *
    */
    public class MainActivity extends Activity implements OnGestureListener {
    private ViewFlipper flipper;
    private GestureDetector detector;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    detector = new GestureDetector(this);
    flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper1);

    flipper.addView(addTextView(R.drawable.one));
    flipper.addView(addTextView(R.drawable.two));
    flipper.addView(addTextView(R.drawable.three));
    flipper.addView(addTextView(R.drawable.four));
    flipper.addView(addTextView(R.drawable.five));
    }

    private View addTextView(int id) {
    ImageView iv = new ImageView(this);
    iv.setImageResource(id);
    return iv;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
    // TODO Auto-generated method stub
    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) {
    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.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 false;
    }

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

    main.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/ViewFlipper1"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent">
    </ViewFlipper>
    </LinearLayout>

    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="-100%p" android:toXDelta="0"
    android:duration
    ="500" />
    <alpha android:fromAlpha="0.1" android:toAlpha="1.0"
    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>

    结束。^_^

    本文来源:http://www.cnblogs.com/hanyonglu/archive/2012/02/13/2349827.html

  • 相关阅读:
    Django的forms.ModelForm自定义特殊条件认证。
    对象的属性输出,魔法方法__dict__
    Django从model对象里面提取出字段与属性,并转换成字典。
    刚刚想起猴子布丁,查了点资料,自己实践了下,记录汇总下。
    HTTP通信传输过程详解。
    jsp->jar
    Python overall structer
    SaaS成熟度模型分级:
    FW: linux screen -recorder by ffcast convert
    time-based DB
  • 原文地址:https://www.cnblogs.com/jh5240/p/2432064.html
Copyright © 2011-2022 走看看