嗨我想重复显示画廊元素。这意味着当我向前或向后移动时,不需要画廊图像结束。如果我采用23个元素数组将图像分配到画廊然后再次显示图像重复当我向前或向后gallary.For此人请给我一些建议。预先感谢重复画廊元素
Q
重复画廊元素
1
A
回答
6
这是非常相似的this question。您需要在getView()
方法中创建一个条件,在该条件中检查您是否位于最后一个元素,然后在第一次在getCount中使用模数重新启动。
编辑 这可能是你可以重用一个例子:
public class TestGallery extends Activity {
private Integer[] mImageIds = { R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4 };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
Gallery g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(this));
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
if (position >= mImageIds.length) {
position = position % mImageIds.length;
}
Toast.makeText(TestGallery.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
TypedArray a = obtainStyledAttributes(R.styleable.default_gallery);
mGalleryItemBackground = a.getResourceId(R.styleable.default_gallery_android_galleryItemBackground, 0);
a.recycle();
}
public int getCount() {
return Integer.MAX_VALUE;
}
public Object getItem(int position) {
if (position >= mImageIds.length) {
position = position % mImageIds.length;
}
return position;
}
public long getItemId(int position) {
if (position >= mImageIds.length) {
position = position % mImageIds.length;
}
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
if (position >= mImageIds.length) {
position = position % mImageIds.length;
}
i.setImageResource(mImageIds[position]);
i.setLayoutParams(new Gallery.LayoutParams(80, 80));
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setBackgroundResource(mGalleryItemBackground);
return i;
}
public int checkPosition(int position) {
if (position >= mImageIds.length) {
position = position % mImageIds.length;
}
return position;
}
}
}
1
下面的代码是很好的例子,为循环图库视图。
相关问题
- 1. jQuery和的fancybox重复画廊
- 2. 重复元素
- 3. 动画重新配置画廊(html/css)
- 4. HTML5画布 - 重复画布元素作为图案
- 5. 重复gridview元素.....!
- 6. 重复的元素
- 7. insertAfter重复元素
- 8. WPF重复元素
- 9. 画布重叠元素
- 10. 帮助加载“画廊”画廊与.load
- 11. R中重复元素的元素
- 12. 重复元素子元素的ID
- 13. 如何在画廊元素之间放置分隔符
- 14. 如何通过ID筛选div元素为画廊
- 15. Fancybox3多个链接到相同的画廊没有重复
- 16. 如何在高山画廊中不重复地显示图像?
- 17. 寻找一个jQuery画廊脚本,它根据鼠标位置移动元素(即滑动画廊)
- 18. Android画廊
- 19. 内置画廊
- 20. 制作画廊
- 21. 悬停画廊
- 22. 在画廊
- 23. 碎片画廊
- 24. 画廊用foreach
- 25. WordPress的画廊
- 26. 删除重复的元素
- 27. jquery重复元素创建
- 28. 数组重复元素
- 29. 为元素重复赋值
- 30. java.util.Set中的重复元素
对不起,我忘记了一件事,然后再复制给你。在“checkPosition(position);”之前添加“position =”在getView – Sephy 2010-07-30 12:23:58
我纠正了上面的示例,使其中的一切工作。 – Sephy 2010-07-30 12:27:24
看起来你的getItem方法有错误。 – Zammbi 2012-06-12 23:51:34