人生建议: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文件中加入
问题就会得到解决。
最后编译运行代码,效果如下:到这里就结束了,有问题可以在评论区问我,但我不一定会,大家一起讨论学习,如果这篇对你用,请点个赞,谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)