安卓:ImageSwitcher组件,手机相册图片滑动功能

安卓:ImageSwitcher组件,手机相册图片滑动功能,第1张

安卓:ImageSwitcher组件,手机相册图片滑动功能

人生建议:API不用建太高,不然很多时候都无法使用运行,建议15

 准备10张大小一致的图片,备用

一、在activity_main.xml中新建一个ImageSwitcher组件

二、把图片放入drawable

 三、在res新建一个名为anim文件夹,如图所示:

 在里面新建滑动效果文件

 

 1.slide_in_left.xml




 2.slide_in_right.xml




 3.slide_out_left.xml




 4.slide_out_right.xml




 四、在MainActivity中实现

package com.example.imageswitcher;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;

public class MainActivity extends AppCompatActivity {

    private int[] arrImg=new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,
            R.drawable.img05, R.drawable.img06,R.drawable.img07,R.drawable.img08,R.drawable.img09,R.drawable.img10};
    private int index;//访问数组的下表
    private ImageSwitcher imageSwitcher;
    private float downX;//记录手指按压时的坐标
    private float upX;//记录手指抬起时的坐标

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //全屏代码
        imageSwitcher=(ImageSwitcher)findViewById(R.id.myIS);
        imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                ImageView imageView=new ImageView(MainActivity.this);
                imageView.setImageResource(arrImg[index]);
                return imageView;
            }
        });

        imageSwitcher.setonTouchListener(new View.onTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {//判断为按下 *** 作,记录坐标,并放回true
                    downX = event.getX();
                    return true;
                } else if (event.getAction()==MotionEvent.ACTION_UP){//抬起 *** 作
                    upX=event.getX();
                    if (upX-downX>100){//从左边往右边的情况
                        index=index==0?arrImg.length-1:index-1;//如果是第一张,则变成最后一张,否则inde-1
                        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_left));//左边进入
                        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_right));//右边出
                        imageSwitcher.setImageResource(arrImg[index]);

                    }else if (downX-upX>100){//从右往左的情况
                        index=index==arrImg.length-1?0:index+1;//如果是最后一张,则变成第一张,否则inde+1
                        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_right));//右边进入
                        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_left));//左边出
                        imageSwitcher.setImageResource(arrImg[index]);
                    }
                        return true;
                }
                return false;
            }


        });

    }
}
 五、修改AndroidManifest.xml文件         将AppTheme修改为Theme.AppCompat

 

 如果出现:Error running imageswitcher手机相册图片滑动功能:Default Activity not found

 那么就在AndroidManifest.xml文件中加入

            
                
                
            
        

问题就会得到解决。 

最后编译运行代码,效果如下:

到这里就结束了,有问题可以在评论区问我,但我不一定会,大家一起讨论学习,如果这篇对你用,请点个赞,谢谢!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5437584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存