ViewFlipper 与GestureDetector 手势使用

//继承GestureDetector.OnGestureListener
public class MainActivity extends Activity implements android.view.GestureDetector.OnGestureListener{
	private GestureDetector gestureDetector = null;  
	private ViewFlipper mViewFlipper = null;
	private ImageView mImageView;

    	protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
  	mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
  	gestureDetector = new GestureDetector(this);    // 声明检测手势事件  

	for (int i = 0; i < 14; i++) {        // 添加图片源  
            mImageView  = new ImageView(this);  
//            mImageView.setImageResource(mImgs[i]); 
            mImageView.setImageBitmap(mBitmap[i]); 
            mImageView.setScaleType(ImageView.ScaleType.FIT_XY);  
           //将图片添加到ViewFlipper
            mViewFlipper.addView(mImageView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
        }  
}

   public boolean onTouchEvent(MotionEvent event) {
       // 注册手势事件  
        return gestureDetector.onTouchEvent(event);         
     // //自动播放
//        mViewFlipper.setAutoStart(true);          
//        mViewFlipper.setFlipInterval(5000);  
//        if(mViewFlipper.isAutoStart() && !mViewFlipper.isFlipping()){  
//            mViewFlipper.startFlipping();  
//        }    
 // 停止自动播放 
//        mViewFlipper.stopFlipping();            
//        mViewFlipper.setAutoStart(false); 
    }  
    
    //    //手势事件
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        // 从左向右滑动 
        if (e2.getX() - e1.getX() > 100) {          
            leftin();  //左进右出
            return true;  
        // 从右向左滑动
        } else if (e2.getX() - e1.getX() < -100) {        
              rightin();  //右进左出
            return true;  
        }  
        return true;  
    }

    private void leftin(){
	// 向右滑动左侧进入的渐变效果
        Animation rInAnim = AnimationUtils.loadAnimation(mActivity, R.anim.right_in);  
	// 向右滑动右侧滑出的渐变效果
        Animation rOutAnim = AnimationUtils.loadAnimation(mActivity, R.anim.right_out); 
        mViewFlipper.setInAnimation(rInAnim);  
        mViewFlipper.setOutAnimation(rOutAnim);  
        mViewFlipper.showPrevious();  //上一页
    }
    private void rightin(){
	// 向左滑动左侧进入的渐变效果
        Animation lInAnim = AnimationUtils.loadAnimation(mActivity, R.anim.left_in);       
       // 向左滑动右侧滑出的渐变效果  
        Animation lOutAnim = AnimationUtils.loadAnimation(mActivity, R.anim.left_out);     
        mViewFlipper.setInAnimation(lInAnim);  
        mViewFlipper.setOutAnimation(lOutAnim);  
        mViewFlipper.showNext();  //下一页
    }

-----------------------------------------------------------------

        System.gc(); //提醒系统及时回收内存
        

      protected void onDestroy() {
           //退出时清除进程
        android.os.Process.killProcess(android.os.Process.myPid());  
            super.onDestroy();
        }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值