栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

安卓: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文件中加入

            
                
                
            
        

问题就会得到解决。 

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462084.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号