android 全屏横向滑动图片集,Android 图片全屏滑动效果

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.view.GestureDetector;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.view.Window;

import android.view.animation.AnimationUtils;

import android.widget.Gallery.LayoutParams;

import android.widget.ImageSwitcher;

import android.widget.ImageView;

import android.widget.Toast;

import android.widget.ViewSwitcher;

public class MyGalleryActivity extends Activity implements

ViewSwitcher.ViewFactory {

private ImageSwitcher mSwitcher;

private int mPosition = 0;

private GestureDetector mGestureDetector;

private Handler _handle;

private Runnable _runable;

private static final float HORIZONTAL_SCROLL_DISTANCE = 10f;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);

mSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitch);

mSwitcher.setFactory(this);

setupOnTouchListeners(findViewById(R.id.rootview));

mSwitcher.setImageResource(mImageIds[mPosition]);

_handle = new Handler();

_runable = new Runnable() {

@Override

public void run() {

if (mPosition == (mImageIds.length - 1)) {

Toast.makeText(MyGalleryActivity.this, "最后一张", 0).show();

} else {

mSwitcher.setInAnimation(AnimationUtils.loadAnimation(

MyGalleryActivity.this, R.anim.slide_in_right));

mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(

MyGalleryActivity.this, R.anim.slide_out_left));

mSwitcher.setImageResource(mImageIds[++mPosition]);

_handle.postDelayed(_runable, 3000);

}

}

};

}

private void setupOnTouchListeners(View rootView) {

mGestureDetector = new GestureDetector(this, new MyGestureListener());

OnTouchListener rootListener = new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

mGestureDetector.onTouchEvent(event);

// We do not use the return value of

// mGestureDetector.onTouchEvent because we will not receive

// the "up" event if we return false for the "down" event.

return true;

}

};

rootView.setOnTouchListener(rootListener);

}

public void onPause() {

super.onPause();

_handle.removeCallbacks(_runable);

}

private class MyGestureListener extends

GestureDetector.SimpleOnGestureListener {

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

if (Math.abs(velocityY) <= Math.abs(velocityX)

&& Math.abs(velocityX) > HORIZONTAL_SCROLL_DISTANCE) {

//

System.out.println(velocityX);

if (velocityX > 0) {

if (mPosition > 0) {

_handle.removeCallbacks(_runable);

//

mSwitcher.setInAnimation(AnimationUtils.loadAnimation(

MyGalleryActivity.this, R.anim.slide_in_left));

mSwitcher

.setOutAnimation(AnimationUtils.loadAnimation(

MyGalleryActivity.this,

R.anim.slide_out_right));

mSwitcher.setImageResource(mImageIds[--mPosition]);

}

} else {

if (mPosition < (mImageIds.length - 1)) {

_handle.removeCallbacks(_runable);

mSwitcher.setInAnimation(AnimationUtils.loadAnimation(

MyGalleryActivity.this, R.anim.slide_in_right));

mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(

MyGalleryActivity.this, R.anim.slide_out_left));

mSwitcher.setImageResource(mImageIds[++mPosition]);

} else if (mPosition == (mImageIds.length - 1)) {

_handle.removeCallbacks(_runable);

Toast.makeText(MyGalleryActivity.this, "注册", 0).show();

return true;

}

}

}

return true;

}

}

private Integer[] mImageIds = { R.drawable.a, R.drawable.b, R.drawable.c,

R.drawable.d, R.drawable.e, R.drawable.f };

@Override

public View makeView() {

ImageView i = new ImageView(this);

i.setBackgroundColor(0xFF000000);

i.setScaleType(ImageView.ScaleType.FIT_XY);

i.setLayoutParams(new ImageSwitcher.LayoutParams(

LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

return i;

}

}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值