android UI ViewFlipper

一:循环播放一组图片。

animation_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="2000" />
      <alpha android:fromAlpha="0"
             android:toAlpha="1"
             android:duration="2000"/>
    
</set>

animation_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="2000" />
      <alpha android:fromAlpha="1.0"
             android:toAlpha="0.0"
             android:duration="2000"/>
    
</set>

java代码:
private void showViewFlipper() {
		// TODO Auto-generated method stub
    	viewFlipper = new ViewFlipper(this);
    	viewFlipper.addView(getImageViewById(R.drawable.froad_icon));
    	viewFlipper.addView(getImageViewById(R.drawable.froad_icon));
    	viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.animation_out));
    	viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.animation_in));
    	viewFlipper.setFlipInterval(5000);
    	viewFlipper.startFlipping();
	}
    
    ImageView getImageViewById(int id){
    	ImageView imageView = new ImageView(this);
    	Drawable draw = this.getResources().getDrawable(id);
    	imageView.setBackgroundDrawable(draw);
    	return imageView;
    };
在onCreat() 里面调用ok了
 showViewFlipper();
 setContentView(viewFlipper);

这段就是利用ViewFlipper来自动播放froad_icon图片。


二:在viewflipper上加入手势操作。

需要一个类:private GestureDetector mGestureDetector  和 实现两个接口 implements OnGestureListener ,OnDoubleTapListener

以下是两个需要添加和自己写的方法。

@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		// TODO Auto-generated method stub
		if(e1 !=null && e2 !=null){
			if(e1.getX() - e2.getX()> FLING_MIN_DISTANCE &&
					Math.abs(velocityX)> 150){
				viewFlipper.setOutAnimation(this,R.anim.animation_out);
				viewFlipper.setInAnimation(this, R.anim.animation_in);
				viewFlipper.showNext();
				int indext = viewFlipper.getDisplayedChild();
				
				
			}
			
		}
		return true;
	}

@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		return this.mGestureDetector.onTouchEvent(event);
	}


在oncreate()里面:

  showViewFlipper();
    	setContentView(viewFlipper);
    	mGestureDetector = new GestureDetector(this);


在onFling方法中只写了一个向左滑动的代码,还可以添加其他滑动。






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值