自定义相册多张图片选择并可限制数量

本文介绍了如何实现自定义相册功能,能够从系统图库中扫描并选择多张图片,同时具备数量限制的特性。提供实现效果的截图以及关键步骤,包括扫描图库的方法和图片显示的适配器详细说明。
摘要由CSDN通过智能技术生成

下面给出实现效果图:

扫描手机图库中的图片方法

/**
	 * 利用ContentProvider扫描手机中的图片,此方法在运行在子线程中
	 */
	private void getImages() {
		if (!Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {
			Toast.makeText(this, "暂无外部存储", Toast.LENGTH_SHORT).show();
			return;
		}

		// 显示进度条
		mProgressDialog = ProgressDialog.show(this, null, "正在加载...");

		new Thread(new Runnable() {

			@Override
			public void run() {
				// 加载图片
				Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
				ContentResolver mContentResolver = ImageGalleryActivity.this
						.getContentResolver();

				// 只查询jpeg和png的图片
				Cursor mCursor = mContentResolver.query(mImageUri, null,
						MediaStore.Images.Media.MIME_TYPE + "=? or "
								+ MediaStore.Images.Media.MIME_TYPE + "=?",
						new String[] { "image/jpeg", "image/png" },
						MediaStore.Images.Media.DATE_MODIFIED);

				while (mCursor.moveToNext()) {
					// 获取图片的路径
					String path = mCursor.getString(mCursor
							.getColumnIndex(MediaStore.Images.Media.DATA));
					File file=new File(path);
					GridChildImageBean bean=new GridChildImageBean();
					bean.setImagePath(path);
					bean.setImageName(file.getName());
					bean.setImageSize(file.length()+"");
					// 获取该图片的父路径名
					String parentName = file.getParentFile()
							.getName();
					// 根据父路径名将图片放入到mGruopMap中
					if (!mGruopMap.containsKey(parentName)) {
						List<GridChildImageBean> chileList = new ArrayList<GridChildImageBean&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值