人生建议: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文件中加入
问题就会得到解决。
最后编译运行代码,效果如下:到这里就结束了,有问题可以在评论区问我,但我不一定会,大家一起讨论学习,如果这篇对你用,请点个赞,谢谢!



