安卓调用系统的图库选择图片并获取Uri路径

本文详细介绍了如何在Android应用中调用系统图库让用户选择图片,并获取所选图片的Uri路径。通过Intent启动图库,设置读取权限,接收返回的数据,解析Uri,确保在不同版本的Android系统上都能正确操作。

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

<span style="font-size:14px;">addImg.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				if(images.size()>=5){
					Toast.makeText(getApplicationContext(), "您不能再添加图片了",
							Toast.LENGTH_SHORT).show();
					return;
				}
				 Intent intent = new Intent();
				 intent.setType("image/*");
				 intent.setAction(Intent.ACTION_GET_CONTENT);  
				 startActivityForResult(intent, 1);
			}
		});</span>



<span style="font-size:14px;">protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if(requestCode==1){
			if(resultCode==RESULT_OK){
				 Log.d("dd",data.toString());
				Uri uri = data.getData(); //返回的结果
				 ContentResolver cr = this.getContentResolver(); 
				 String[] filePathColumn = { MediaStore.Images.Media.DATA };
				 
				 /
				 Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null);
				 if(cursor==null){
					 return;
				 }
				 cursor.moveToFirst();
				 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
				 String picturePath = cursor.getString(columnIndex);
				 if(!picturePath.toLowerCase().endsWith(".jpg")&&!picturePath.toLowerCase().endsWith(".jpeg")){
					 Toast.makeText(getApplicationContext(), "请选择jpg格式的图片",
								Toast.LENGTH_SHORT).show();
					 return;
				 }
				 images.add(picturePath);//上面是为了获取图片的路径
				 setAdapter(new MyAdapter(UploadActivity.this));
				 Log.d("dd",picturePath);
			}
		}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值