android+代码调用+相册+小米,Android调用系统相册选择图片,支持小米4云相册

本文介绍了一个问题,即在小米4手机上使用系统相册选择图片时,如果云相册功能开启,选择的图片URI会因为来自云相册而变成file类型而非content类型。解决方法是通过判断URI的scheme来分别处理content和file类型的图片路径。当用户从云相册选取图片时,可以使用getPath()方法获取图片路径。这个方法对于处理小米手机上涉及云相册的图片选取问题具有参考价值。
摘要由CSDN通过智能技术生成

用小米4调用系统相册选择照片时,如果云相册功能开启的话.云相册中的图片也会显示在选择列表中.经过测试,选择到云相册中的图片的话,uri的scheme是file,而不再试content.本文支持云相册的方法就是通过判断scheme来实现的.

调用系统相册

Intent intent = new Intent(Intent.ACTION_PICK,

android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

startActivityForResult(intent, yourRequestCode);

重写Activity中onActivityResult方法实现回调

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

//获取图片路径

if (requestCode == yourRequestCode && resultCode == Activity.RESULT_OK && data != null) {

Uri localUri = data.getData();

String scheme = localUri.getScheme();

String imagePath = "";

if("content".equals(scheme)){

String[] filePathColumns = {MediaStore.Images.Media.DATA};

Cursor c = getContentResolver().query(localUri, filePathColumns, null, null, null);

c.moveToFirst();

int columnIndex = c.getColumnIndex(filePathColumns[0]);

imagePath = c.getString(columnIndex);

}else if("file".equals(scheme)){//小米4选择云相册中的图片是根据此方法获得路径

imagePath = localUri.getPath();

}

showImage(imagePath);//拿到图片路径后处理

c.close();

}

}

来源:oschina

链接:https://my.oschina.net/u/2523371/blog/734593

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码Android 应用中调用系统相册选择视频: 1. 首先,在您的 AndroidManifest.xml 文件中添加以下权限: ``` <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> ``` 2. 接下来,在您的 Activity 中添加以下代码: ``` // 定义一个常量,用于标识选择视频的请求码 private static final int SELECT_VIDEO_REQUEST_CODE = 1; // 在您的 Activity 中添加以下方法,用于启动系统相册选择视频 private void selectVideo() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, SELECT_VIDEO_REQUEST_CODE); } // 在您的 Activity 中添加以下方法,用于处理选择视频后的结果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == SELECT_VIDEO_REQUEST_CODE && resultCode == RESULT_OK) { Uri selectedVideoUri = data.getData(); // 在这里处理选择视频后的逻辑 } } ``` 3. 最后,在您的布局文件中添加一个按钮或其他控件,用于触发选择视频的操作: ``` <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择视频" android:onClick="selectVideo"/> ``` 这样,当用户点击按钮时,系统相册将会打开,并且用户可以选择一个视频。选择完成后,您的 Activity 将会收到一个 onActivityResult 回调,您可以在这里处理选择视频后的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值