ViewFlipper的使用

来源:互联网 发布:赵薇被处罚知乎 编辑:程序博客网 时间:2024/06/11 03:23
package com.example.android_flipper;


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


public class MainActivity extends Activity implements OnGestureListener {


private ViewFlipper viewFlipper;
private GestureDetector gestureDetector;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper1);
gestureDetector = new GestureDetector(this);


viewFlipper.addView(addTextView(R.drawable.flight));
viewFlipper.addView(addTextView(R.drawable.image5));
viewFlipper.addView(addTextView(R.drawable.sign));
viewFlipper.addView(addTextView(R.drawable.small_button));
viewFlipper.addView(addTextView(R.drawable.ic_launcher));


}


public View addTextView(int id) {


ImageView imageView = new ImageView(this);
imageView.setImageResource(id);
return imageView;


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.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
if (e1.getX() - e2.getX() > 120) {
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(
MainActivity.this, R.anim.push_left_in));
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(
MainActivity.this, R.anim.push_left_out));


viewFlipper.showNext();
return true;
} else if (e1.getX() - e2.getX() < -120) {
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(
MainActivity.this, R.anim.push_right_in));
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(
MainActivity.this, R.anim.push_right_out));


viewFlipper.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;
}


}



在res目录下面新建一个folder,命名为anim,在此目录下创建四个xml文件

push_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:toXDelta="0" >
    </translate>


    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.1"
        android:duration="500" >
    </alpha>

</set>

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-100%" />


    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.1" >
    </alpha>


</set>

push_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:duration="500"
        android:fromXDelta="-100%p"
        android:toXDelta="0" >
    </translate>


    <alpha
        android:duration="500"
        android:fromAlpha="0.1"
        android:toAlpha="1.0" >
    </alpha>


</set>


push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="100%p" />


    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.1" />


</set>

原创粉丝点击