Android处理Uri uri = data.getData();中的uri
时间: 2024-05-21 10:15:20 浏览: 18
在Android中,`Uri`代表着一个资源的唯一标识符。在`onActivityResult`方法中,`data.getData()`返回的是从另一个Activity返回的数据的Uri,可以通过该Uri获取到返回的数据。具体处理方式根据具体需求而定,例如:
- 如果是获取图片,可以使用`BitmapFactory`将Uri转换为Bitmap对象;
- 如果是获取文件,可以使用`ContentResolver`获取文件的输入流进行处理;
- 如果是获取视频,可以使用`MediaPlayer`播放该Uri代表的视频等。
总之,具体处理方式取决于需要处理的数据类型和业务需求。
相关问题
以下代码,请用Bitmap替换Glide来实现同样的功能 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_IMAGE_CAPTURE) { Bitmap photo = (Bitmap) data.getExtras().get("data"); Uri tempUri = getImageUri(photo); selectedImagePath = tempUri.getPath(); Glide.with(this).load(tempUri).into(imageView); } else if (requestCode == REQUEST_IMAGE_PICK) { Uri selectedImageUri = data.getData(); selectedImagePath = selectedImageUri.getPath(); Glide.with(this).load(selectedImageUri).into(imageView); } } }
以下是使用Bitmap替换Glide的代码实现:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (requestCode == REQUEST_IMAGE_CAPTURE) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
Uri tempUri = getImageUri(photo);
selectedImagePath = tempUri.getPath();
imageView.setImageBitmap(photo);
} else if (requestCode == REQUEST_IMAGE_PICK) {
Uri selectedImageUri = data.getData();
selectedImagePath = selectedImageUri.getPath();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在这个代码中,我们通过`setImageBitmap()`方法将Bitmap对象直接设置到ImageView中,而不是使用Glide库加载图片。对于拍摄的照片,我们直接使用`photo`作为Bitmap对象;对于从相册选择的照片,我们使用`MediaStore`来获取Bitmap对象。
无法调用相册图片@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {//相机中选择图片 // 获取选择的图片的URI Bundle extras = data.getExtras(); Bitmap bitmap = (Bitmap) extras.get("data"); // 在ImageView中显示选择的图片 camerapicture.setImageBitmap(bitmap); } else if (requestCode == 102 && resultCode == RESULT_OK) {//相册中选择图片 Bundle extras = data.getExtras(); Bitmap bitmap = (Bitmap) extras.get("data"); // 在ImageView中显示选择的图片 choosepicture.setImageBitmap(bitmap); } } }
很抱歉,我之前给出的代码有误。对于从相册选择图片的情况,我们需要使用不同的方法来获取图片。以下是修正后的代码:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {//相机中选择图片
// 获取选择的图片的URI
Bundle extras = data.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
// 在ImageView中显示选择的图片
camerapicture.setImageBitmap(bitmap);
}
else if (requestCode == 102 && resultCode == RESULT_OK) {//相册中选择图片
Uri selectedImage = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
// 在ImageView中显示选择的图片
choosepicture.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码中,我们通过`data.getData()`方法获取从相册选择的图片的URI,并使用`MediaStore.Images.Media.getBitmap()`方法将URI转换为Bitmap对象。然后将Bitmap对象显示在`choosepicture`的ImageView上。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)