欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android 图片全屏滑动效果,,import andro

来源: javaer 分享于  点击 32386 次 点评:32

Android 图片全屏滑动效果,,import andro


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)                      &amp;&amp; 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;      }  }  
相关栏目:

用户点评