zoukankan      html  css  js  c++  java
  • ViewFlipper

    main.xml

    <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=".Main" >

    <ViewFlipper
    android:id="@+id/viewFlipper1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >
    </ViewFlipper>

    </RelativeLayout>

    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="600"
    />
    <alpha
    android:fromAlpha="0.1"
    android:toAlpha="1.0"
    android:duration="600"
    />

    </set>

    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="600"
    />
    <alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.1"
    android:duration="600"
    />

    </set>

    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="600"
    />
    <alpha
    android:fromAlpha="0.1"
    android:toAlpha="1.0"
    android:duration="600"
    />

    </set>

    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="600"
    />
    <alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.1"
    android:duration="600"
    />

    </set>

    Main.java


    package com.example.myflipper;

    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.view.Window;
    import android.view.animation.Animation;
    import android.view.animation.AnimationUtils;
    import android.widget.ImageView;
    import android.widget.ViewFlipper;

    public class Main extends Activity {

    private static final String TAG = "MainActivity";

    private ViewFlipper viewFlipper;
    private GestureDetector detector; //手势检测

    Animation leftInAnimation;
    Animation leftOutAnimation;
    Animation rightInAnimation;
    Animation rightOutAnimation;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);

    viewFlipper = (ViewFlipper)findViewById(R.id.viewFlipper1);
    detector = new GestureDetector(this, new GestureDetector.OnGestureListener() {

    @Override
    public boolean onSingleTapUp(MotionEvent e) {

    // TODO Auto-generated method stub
    return false;
    }

    @Override
    public void onShowPress(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 onLongPress(MotionEvent e) {

    // TODO Auto-generated method stub

    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    float velocityY) {

    Log.i(TAG, "e1="+e1.getX()+" e2="+e2.getX()+" e1-e2="+(e1.getX()-e2.getX()));



    if(e1.getX()-e2.getX()>120){
    viewFlipper.setInAnimation(leftInAnimation);
    viewFlipper.setOutAnimation(leftOutAnimation);
    viewFlipper.showNext();//向右滑动
    return true;
    }else if(e1.getX()-e2.getY()<-120){
    viewFlipper.setInAnimation(rightInAnimation);
    viewFlipper.setOutAnimation(rightOutAnimation);
    viewFlipper.showPrevious();//向左滑动
    return true;
    }
    return false;
    }

    @Override
    public boolean onDown(MotionEvent e) {

    // TODO Auto-generated method stub
    return false;
    }
    });

    //往viewFlipper添加View
    viewFlipper.addView(getImageView(R.drawable.a1));
    viewFlipper.addView(getImageView(R.drawable.a2));
    viewFlipper.addView(getImageView(R.drawable.a3));
    viewFlipper.addView(getImageView(R.drawable.a4));
    viewFlipper.addView(getImageView(R.drawable.a5));
    viewFlipper.addView(getImageView(R.drawable.a6));

    //动画效果
    leftInAnimation = AnimationUtils.loadAnimation(this, R.layout.left_in);
    leftOutAnimation = AnimationUtils.loadAnimation(this, R.layout.left_out);
    rightInAnimation = AnimationUtils.loadAnimation(this, R.layout.right_in);
    rightOutAnimation = AnimationUtils.loadAnimation(this, R.layout.right_out);
    }

    private ImageView getImageView(int id){
    ImageView imageView = new ImageView(this);
    imageView.setImageResource(id);
    return imageView;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {

    return this.detector.onTouchEvent(event); //touch事件交给手势处理。
    }



    }

  • 相关阅读:
    POJ 3140 Contestants Division (树dp)
    POJ 3107 Godfather (树重心)
    POJ 1655 Balancing Act (树的重心)
    HDU 3534 Tree (经典树形dp)
    HDU 1561 The more, The Better (树形dp)
    HDU 1011 Starship Troopers (树dp)
    Light oj 1085
    Light oj 1013
    Light oj 1134
    FZU 2224 An exciting GCD problem(GCD种类预处理+树状数组维护)同hdu5869
  • 原文地址:https://www.cnblogs.com/honeynm/p/4289421.html
Copyright © 2011-2022 走看看