gallery中的子项在点击的时候改变子项的背景图片

本文介绍了一种在Android应用中实现图片轮播的方法。通过创建自定义Adapter并结合Gallery组件来展示不同状态的图片资源。当用户点击图片时,会更新当前选中图片的状态,并重新加载视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Activity中:

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		final int[] ab = new int[] { R.drawable.angel, R.drawable.angry,
				R.drawable.awkward };
		final Gallery gallery = (Gallery) findViewById(R.id.gllery);
		final GalleryAdapter adapter = new GalleryAdapter(this, ab);
		gallery.setAdapter(adapter);
		gallery.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				adapter.setPos(arg2);    
				adapter.notifyDataSetChanged();
			}
		});
	}
adapter中:
/**
 * @author kazeik
 * 
 */
public class GalleryAdapter extends BaseAdapter {

	private Context mContext;
	private int[] ten = null;
	int post;

	public GalleryAdapter(Context c, int[] len) {
		mContext = c;
		ten = len;
	}

	public int getCount() {
		return ten.length;
	}

	public Object getItem(int position) {
		return ten[position];
	}

	public long getItemId(int position) {
		return position;
	}

	public void setPos(int pos) {
		this.post = pos;
	}

	int mCurrentPosition;

	public View getView(final int position, View convertView,
			final ViewGroup parent) {
		final ImageView img = new ImageView(mContext);
		img.setLayoutParams(new Gallery.LayoutParams(100, 100));
		img.setScaleType(ImageView.ScaleType.FIT_XY);
		img.setPadding(30, 17, 30, 17);
		// img.setImageResource(ten[position]);
		img.setBackgroundResource(ten[position]);
		if (position == post) {
			img.setBackgroundResource(R.drawable.below_meun_h);
		}

		return img;
	}

}


还算简单,理解了思想就好;转载时请注明出处,谢谢;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值