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

Android基于ImageSwitcher实现图片切换功能

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

Android基于ImageSwitcher实现图片切换功能

左右切换图片控件大家都用ViewPager, ViewFipper比较多吧,我之前也用ViewPager实现了,使用ViewPager实现左右循环滑动图片,有兴趣的可以去看下,今天介绍的是基于ImageSwitcher实现的左右切换图片,先上截图吧

好了,接下来来看代码吧,第一张图是一个GridView,点击item跳转到第二个界面,第一个界面可以忽略,主要是讲解ImageSwitcher的左右却换图片,先看布局文件

 
 
   
   
   
     
       
       
   
 

然后就是Activity代码啦,总体来说比较简单,代码我添加了注释

package com.example.photoalbum; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.view.ViewGroup; 
import android.view.animation.AnimationUtils; 
import android.widget.ImageSwitcher; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout.LayoutParams; 
import android.widget.Toast; 
import android.widget.ViewSwitcher.ViewFactory; 
 
public class ShowPhotoActivity extends Activity implements ViewFactory, OnTouchListener{ 
   
  private ImageSwitcher mImageSwitcher; 
   
  private int[] imgIds; 
   
  private int currentPosition; 
   
  private float downX; 
   
  private LinearLayout linearLayout; 
   
  private ImageView[] tips; 
  
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.show_photo); 
     
    imgIds = new int[]{R.drawable.item01,R.drawable.item02,R.drawable.item03,R.drawable.item04, 
 R.drawable.item05, R.drawable.item06, R.drawable.item07, R.drawable.item08,R.drawable.item09, 
 R.drawable.item10, R.drawable.item11, R.drawable.item12}; 
    //实例化ImageSwitcher 
    mImageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1); 
    //设置Factory 
    mImageSwitcher.setFactory(this); 
    //设置OnTouchListener,我们通过Touch事件来切换图片 
    mImageSwitcher.setonTouchListener(this); 
     
    linearLayout = (LinearLayout) findViewById(R.id.viewGroup); 
     
    tips = new ImageView[imgIds.length]; 
    for(int i=0; i downX){ 
 if(currentPosition > 0){ 
   //设置动画,这里的动画比较简单,不明白的去网上看看相关内容 
   mImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.left_in)); 
   mImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.right_out)); 
   currentPosition --; 
   mImageSwitcher.setImageResource(imgIds[currentPosition % imgIds.length]); 
   setImageBackground(currentPosition); 
 }else{ 
   Toast.makeText(getApplication(), "已经是第一张", Toast.LENGTH_SHORT).show(); 
 } 
      }  

      if(lastX < downX){ 
 if(currentPosition < imgIds.length - 1){ 
   mImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.right_in)); 
   mImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.lift_out)); 
   currentPosition ++ ; 
   mImageSwitcher.setImageResource(imgIds[currentPosition]); 
   setImageBackground(currentPosition); 
 }else{ 
   Toast.makeText(getApplication(), "到了最后一张", Toast.LENGTH_SHORT).show(); 
 } 
      } 
      } 

      break; 
    } 
 
    return true; 
  } 
 
} 

上面切换图片主要用到的就是动画了,用的是translate移动动画,这里我就不介绍了,接下来我吧动画代码贴出来,在res新建一个anim的目录,如下图

左边进入的动画,left_in.xml

 
 
   
 

左边出去的动画,left_out.xml

 
 
   
 

右边进入的动画,right_in.xml

 
 
   
 

右边出去的动画,right_out.xml

 
 
   
 

好了,介绍完了,代码写的不是很好,写的不好的地方希望大家谅解,小编一定更加努力。

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

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

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