Android 图片全屏滑动效果
发布时间:2020-05-24 15:29:00 所属栏目:Java 来源:互联网
导读:Android 图片全屏滑动效果
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 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;
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
