当前位置:编程学习 > wap >>

gallery 循环现实图片。

public class Gallery_Activity extends Activity {
    /** Called when the activity is first created. */
private Gallery gallery;
private ImageView imageView;
private int images[]={R.drawable.r1,R.drawable.r2,R.drawable.r3,R.drawable.r4,R.drawable.r5};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gallery=(Gallery) findViewById(R.id.gallery1);
        imageView=(ImageView) findViewById(R.id.imageView1);
        gallery.setSpacing(100);
        gallery.setSelection(1);
        MyGallery_Adpter myGallery_Adpter=new MyGallery_Adpter(this, images);
        gallery.setAdapter(myGallery_Adpter);
        gallery.setOnItemSelectedListener(new OnItemSelectedListener() {

public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
imageView.setImageResource(images[arg2%images.length]);
}

public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
    }
}

public class MyGallery_Adpter extends BaseAdapter {
private Context context;
private int image[];
private ImageView imageView;
public MyGallery_Adpter(Context context,int image[]) {
this.context=context;
this.image=image;
}

public int getCount() {
// TODO Auto-generated method stub
return image.length;
}

public Object getItem(int arg0) {
// TODO Auto-generated method stub
return image[arg0];
}

public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
imageView=new ImageView(context);
imageView.setImageResource(image[position%image.length]);
imageView.setPadding(2, 2, 2, 2);
imageView.setLayoutParams(new Gallery.LayoutParams(200, 200));
return imageView;
}
}
怎么不能达到效果,该怎么写呢,求大神指导 --------------------编程问答-------------------- public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}

--------------------编程问答-------------------- 楼上正解 --------------------编程问答--------------------
引用 1 楼  的回复:
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}


+1

循环效果实际上是形成了一个很长的,不断重复的长列。 --------------------编程问答-------------------- 这种方法是种伪循环。。。 --------------------编程问答-------------------- Integer.MAX_VALUE;
  返回的是什么? --------------------编程问答-------------------- --------------------编程问答-------------------- 好像是20亿 反正是一个很大的数字 --------------------编程问答--------------------
引用 1 楼  的回复:
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}


仅这样还不够  


public View getView(int position, View convertView, ViewGroup parent) 
{
   // TODO Auto-generated method stub
   imageView=new ImageView(context);
   imageView.setImageResource(image[position%Integer.MAX_VALUE]);
   imageView.setPadding(2, 2, 2, 2);
   imageView.setLayoutParams(new Gallery.LayoutParams(200, 200));

   return imageView;
}


这个只是右循环

如果想要左循环  就必须改那个Gallery了   加个判断即可
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,