【android】gallery 循环播放

目标:gallery播放时,图片向左或者向右,到头后都会留点空白,这样的效果很不好,虽然可以使用setselection()函数设置默认显示图片,留有空白是仍然存在的,于是为了解决此问题,好像大家都是使用gallery的循环播放。

详细的用法,可以参考http://blog.csdn.net/herryz/archive/2011/01/15/6141957.aspx 

为了实现循环播放,一般有三个地方,需要修改:

(1)修改ImageAdapter中的getCount()(返回图像的总数量)函数:

// 返回图像总数   
public int getCount()
{
	//return images.length;
	return Integer.MAX_VALUE;
}

 

(2)修改ImageAdapter中的getView()函数:

    public View getView(int position, View convertView, ViewGroup parent)
    {  
      ImageView i = new ImageView(mContext);

      //i. setImageResource(myImageIds[position]); 
      //循环取图像数据     
      i.setImageResource(myImageIds[position%images.length]); /* 设定图片给imageView对象 */  

      i.setScaleType(ImageView.ScaleType.FIT_XY);            /* 重新设定图片的宽高 */  
      i.setLayoutParams(new Gallery.LayoutParams(136, 88));  /* 重新设定Layout的宽高 */  
      i.setBackgroundResource(mGalleryItemBackground);       /* 设定Gallery背景图 */  
      return i;                                              /* 传回imageView物件 */  
    } 

(3)一般而言,上述1、2步就可以了,但是如果你细心点的话,就会发现,其实1、2步向右的确实现了循环播放,但是向左,仍然不可以循环。这时候,为了实现向左的“循环”,我们可以设置gallery的setselection()函数:

gallery.setselection(300);

取第301张图片昨晚默认居中图片,这样,用户向左滑动的时候,一般而言,不会滑300下吧~这样给用户造成的视觉效果就是实现了向左循环了。

posted @ 2011-06-20 15:19  风倾清凌  阅读(3832)  评论(4编辑  收藏  举报