Android中利用ViewFliper实现屏幕切换效果

大家都使用过ViewPager,但是ViewPager还有一个兄弟,那就是ViewFlipper。两者的名字非常相似,我们可以将ViewPager理解成“一页一页的视图”,ViewFlipper则是“快速翻转的视图”,但后者的使用率却远不及前者,不过这并不意味着ViewFlipper就弱了。现在我们就来拜访一下经常被冷落的ViewFlipper。

本示例是用ViewFliper实现屏幕切换图片的效果,手指滑动就实现图片的切换。

屏幕切换指的是在同一个Activity内屏幕间的切换,ViewFlipper继承了Framelayout类,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。如下动图:

Android中利用ViewFliper实现屏幕切换效果

程序结构图:

Android中利用ViewFliper实现屏幕切换效果

ViewFliper中的代码

package com.scnu.mc.myviewfliper; 
 
import Android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.widget.ViewFlipper; 
 
public class ViewFliper extends Activity { 
 
    ViewFlipper viewFlipper = null; 
    float startX; 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
 
        init(); 
    } 
 
    private void init() { 
        viewFlipper = (ViewFlipper) this.findViewById(R.id.viewFlipper); 
    } 
 
    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
        switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
            startX = event.getX(); 
            break; 
        case MotionEvent.ACTION_UP: 
 
            if (event.getX() > startX) { // 向右滑动 
                viewFlipper.setInAnimation(this, R.anim.in_left2right); 
                viewFlipper.setOutAnimation(this, R.anim.out_left2right); 
                viewFlipper.showNext(); 
            } else if (event.getX() < startX) { // 向左滑动 
                viewFlipper.setInAnimation(this, R.anim.in_right2left); 
                viewFlipper.setOutAnimation(this, R.anim.out_right2left); 
                viewFlipper.showPrevious(); 
            } 
            break; 
        } 
 
        return super.onTouchEvent(event); 
    } 
 

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppsjp.html