加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android 图片全屏滑动效果

发布时间:2020-12-15 00:18:40 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.GestureDetector; import android.view.M

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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;  
    }  
}  

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读