private void callGallery() { ActivityCompat.requestPermissions(NoteEditActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);//动态申请权限 ActivityCompat.requestPermissions(NoteEditActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);//动态申请权限 Intent getAlbum = new Intent(Intent.ACTION_PICK);//隐私传递intent getAlbum.setType("image/*"); startActivityForResult(getAlbum, 1);//以请求码为1(onActivityResult方法里会处理),开始活动。 } 以上代码跟添加图片后只显示图片地址有没有关系 如果有,该如何修改,请给出修改后的代码
时间: 2024-03-16 13:43:50 浏览: 14
以上代码是用于调用系统相册,获取用户选择的图片,并在 onActivityResult 方法中处理选择的结果。如果只显示图片地址,可能是因为在 onActivityResult 中没有正确处理图片数据。可以尝试修改如下:
1. 在 NoteEditActivity 中添加以下属性:
```
private ImageView mImageView; // 用于显示选择的图片
private Uri mSelectedImageUri; // 保存选择的图片的 Uri
```
2. 修改 callGallery 方法如下:
```
private void callGallery() {
// 动态申请权限
ActivityCompat.requestPermissions(NoteEditActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
ActivityCompat.requestPermissions(NoteEditActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
// 创建 Intent,打开系统相册
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
// 启动相册,请求选择图片
startActivityForResult(intent, 1);
}
```
3. 在 onActivityResult 方法中添加以下代码:
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
// 获取选择的图片的 Uri,并显示在 ImageView 中
mSelectedImageUri = data.getData();
mImageView.setImageURI(mSelectedImageUri);
}
}
```
注意,以上代码仅供参考,具体实现可能需要根据实际情况进行修改。