Android gallery实现图片的左右循环旋转源码分享
三步走:第一步初始化gallery时设置较大的初始化位置 Gallery gallery = ((Gallery) findViewById(R.id.myGallery1)); gallery.setAdapter(new ImageAdapter(this)); gallery.setSelection(200); 第二步:重写 BaseAdapter方法中的getCount时返回一个较大的值: // 为了使资源循环使用 public int getCount() { return Integer.MAX_VALUE; } 第三步:重写BaseAdapter时使用用position对集合大小取余的值,如下: /* 取得目前欲显示的图像View,传入数组ID值使之读取与成像 */ public View getView(int position, View convertView, ViewGroup parent) { /* 创建一个ImageView对象 */ ImageView i = new ImageView(this.myContext); i.setPadding(10, 10, 10, 10); i.setAlpha(80); // i.setImageResource(this.myImageIds[position]); if(position<0){ position =position+myImageIds.length; } i.setImageResource(this.myImageIds[position% myImageIds.length]); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setBackgroundResource(mGalleryItemBackground); /* 设置这个ImageView对象的宽高,单位为dip */ i.setLayoutParams(new Gallery.LayoutParams(85, 72)); return i; } 以下是该类的完整代码: /* 依据距离中央的位移量 利用getScale返回views的大小(0.0f to 1.0f) */
|