成都网站建设设计

将想法与焦点和您一起共享

Android如何实现自动播放图片功能

这篇文章主要介绍了Android如何实现自动播放图片功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

鸡冠网站建设公司创新互联公司,鸡冠网站设计制作,有大型网站制作公司丰富经验。已为鸡冠数千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的鸡冠做网站的公司定做!

本文实例为大家分享了Android实现自动播放图片功能的具体代码,供大家参考,具体内容如下

第一种方式:回退到第一张

效果图

Android如何实现自动播放图片功能

第二种方式:无限循环

效果图:

Android如何实现自动播放图片功能

Android如何实现自动播放图片功能

源代码

逻辑代码--MainActivity

package com.example.week4_day4_viewpager2; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import android.R.integer; 
import android.os.Bundle; 
import android.os.Handler; 
import android.app.Activity; 
import android.support.v4.view.ViewPager; 
import android.view.Menu; 
import android.widget.ImageView; 
 
public class MainActivity extends Activity { 
 
  private ViewPager viewPager; 
  // 数据源 
  private int[] images = { R.drawable.image1, R.drawable.image2, 
      R.drawable.image3 }; 
  // 存放数据源的集合 
  List list; 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    // 实例化list 
    list = new ArrayList(); 
    for (int i = 0; i < images.length; i++) { 
      ImageView imageView = new ImageView(MainActivity.this); 
      imageView.setImageResource(images[i]); 
      list.add(imageView); 
    } 
    // 绑定适配器 
    viewPager.setAdapter(new MyViewPagerAdapter(MainActivity.this, list)); 
    // 当有3张图片时,走到id=2时最后一张, 
    viewPager.setCurrentItem(Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2 
        % list.size());// 假设viewPager有无数条数据 
    // 延迟两秒发送一条消息 
    handler.sendEmptyMessageDelayed(1, 2000); 
  } 
 
  // 让图片自动播放,无限循环 
  private Handler handler = new Handler() { 
    public void handleMessage(android.os.Message msg) { 
      /** 
       * 第一种方法,播放到最后一张时,回退到第一张照片从头播放 
       *       弊端:回退时如果图片过多,会出现回退重影,即3张时,从最后一张瞬间回退到第2张,又瞬间回退到第1张 
       */ 
//      int i = viewPager.getCurrentItem();// 当前item 
//      if (i == list.size() - 1) {// 如果第一条等于最后一条 
//      // false:是否显示动画 
//      viewPager.setCurrentItem(0, true);// 回到第一条item 
//      } else { 
//      viewPager.setCurrentItem(i + 1, true); 
//      } 
      /** 
       * 第二种方法,无限循环播放,每次都把所有相片,放到后面查看 
       */ 
      viewPager.setCurrentItem(viewPager.getCurrentItem() + 1); 
 
      sendEmptyMessageDelayed(1, 2000); 
    }; 
  }; 
}

逻辑代码--自定义适配器

package com.example.week4_day4_viewpager2; 
 
import java.util.List; 
 
import android.content.Context; 
import android.support.v4.view.PagerAdapter; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
 
public class MyViewPagerAdapter extends PagerAdapter{ 
 
  private Context context; 
  private List list; 
   
  public MyViewPagerAdapter(Context context, List list) { 
    super(); 
    this.context = context; 
    this.list = list; 
  } 
 
  @Override 
  public int getCount() { 
    // TODO Auto-generated method stub 
    return Integer.MAX_VALUE;//设置viewPager里有N条数据 
    //return list.size(); 
  } 
   
  @Override 
  public Object instantiateItem(ViewGroup container, int position) { 
    //假设有3张照片,走到id=2时,走id=0的,所以取余 
    container.addView(list.get(position%list.size())); 
    return list.get(position%list.size()); 
    //return list.get(position); 
  } 
  @Override 
  public void destroyItem(ViewGroup container, int position, Object object) { 
    // TODO Auto-generated method stub 
    container.removeView(list.get(position%list.size())); 
    //container.removeView(list.get(position)); 
    //super.destroyItem(container, position, object); 
  } 
 
  @Override 
  public boolean isViewFromObject(View arg0, Object arg1) { 
    // TODO Auto-generated method stub 
    return arg0==arg1; 
  } 
 
}

布局文件

 
 
   
 

感谢你能够认真阅读完这篇文章,希望小编分享的“Android如何实现自动播放图片功能”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


网站栏目:Android如何实现自动播放图片功能
标题网址:http://chengdu.cdxwcx.cn/article/jecehi.html