小米手机相册选择并裁剪图片

news/2024/12/29 7:13:47/
/**
 * 裁剪原始的图片
 */
public static final int PHOTOZOOM = 2; // 缩放
public static final int PHOTORESOULT = 3;// 结果
Uri mUritempFile;
 
@PermissionYes(200)
//申请权限成功打开相册
private void getMultiYes( @NonNull List<String> grantedPermissions) { Intent local = new Intent() ; local.setType( "image/*") ; local.setAction(Intent. ACTION_GET_CONTENT) ; startActivityForResult(local , 2) ;} public void cropRawPhoto(Uri uri) { Intent intent = new Intent( "com.android.camera.action.CROP") ; intent.setDataAndType(uri , "image/*") ; // 设置裁剪 intent.putExtra( "crop" , "true") ; // aspectX , aspectY :宽高的比例 intent.putExtra( "aspectX" , 1) ; intent.putExtra( "aspectY" , 1) ; // outputX , outputY : 裁剪图片宽高 intent.putExtra( "outputX" , 100) ; intent.putExtra( "outputY" , 100) ; String dateFolder = new SimpleDateFormat( "yyyyMMdd" , Locale. CHINA) .format( new Date()) ; //设置图片保存路径 String fff = "file://" + "/" + Environment. getExternalStorageDirectory() + "/DCIM/" ; //设置图片名称 File fullFile = new File(fff , dateFolder + ".jpeg") ; //将图片路径转换成uri mUritempFile = Uri. parse(fullFile.toString()) ; intent.putExtra(MediaStore. EXTRA_OUTPUT , mUritempFile) ; intent.putExtra( "outputFormat" , Bitmap.CompressFormat. JPEG.toString()) ; intent.putExtra( "return-data" , false) ; startActivityForResult(intent , PHOTORESOULT) ;

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == PHOTOZOOM&& data != null) {//这是获取的图片保存在sdcard中的位置
        cropRawPhoto(getPictureUri(data));
    }if (requestCode == PHOTORESOULT && data != null) {Map<String, String> map = new HashMap<>();
        map.put("client_type", "3");
        map.put("type", "headimg");
        map.put("token", ApiHost.getToken());
        LogUtil.e("LXY", getPictureUri(mUritempFile).toString());
        ImageDown.getFile(this, mUritempFile, map);
    }super.onActivityResult(requestCode, resultCode, data);
}
/**
 * 解决小米手机上获取图片路径为null的情况
 */
public Uri getPictureUri(android.content.Intent intent) {Uri uri = intent.getData();
    String type = intent.getType();
    if (uri.getScheme().equals("file") && (type.contains("image/"))) {String path = uri.getEncodedPath();
        if (path != null) {path = Uri.decode(path);
            ContentResolver cr = getContentResolver();
            StringBuffer buff = new StringBuffer();
            buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")");
            Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    new String[]{MediaStore.Images.ImageColumns._ID},
                    buff.toString(), null, null);
            int index = 0;
            for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID);
                // set _id value
                index = cur.getInt(index);
            }if (index == 0) {// do nothing
            } else {Uri uri_temp = Uri.parse("content://media/external/images/media/"
                                + index);
                if (uri_temp != null) {uri = uri_temp;
                }}}}return uri;
}/**
 * 解决小米手机上获取图片路径为null的情况
 */
public Uri getPictureUri(Uri uri) {if (uri.getScheme().equals("file")) {String path = uri.getEncodedPath();
        if (path != null) {path = Uri.decode(path);
            ContentResolver cr = getContentResolver();
            StringBuffer buff = new StringBuffer();
            buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")");
            Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    new String[]{MediaStore.Images.ImageColumns._ID},
                    buff.toString(), null, null);
            int index = 0;
            for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID);
                // set _id value
                index = cur.getInt(index);
            }if (index == 0) {// do nothing
            } else {Uri uri_temp = Uri.parse("content://media/external/images/media/"
                                + index);
                if (uri_temp != null) {uri = uri_temp;
                }}}}return uri;
}


http://www.ppmy.cn/news/313218.html

相关文章

小米3一键调整分区+刷机教程

1什么是刷机2调整分区步骤 下载好第三方TWRP的recovery刷入twrp recovery进入recovery模式 3刷机教程 下载刷机包进入Fastboot模式进行刷机开始启动完成刷机 注意事项 【1】什么是刷机&#xff1f; 刷机,指的是手机方面的专业术语&#xff0c;是指通过一定的方法更改或替换手机…

php 小米路由器_小米路由3 原厂固件OPKG安装 nginx+php+mysql 搭建WEB环境 芒果云等...

本帖最后由 crosscc 于 2017-9-2 16:17 编辑 自己路由器是小米路由3,由于自带的APP和和迅雷远程下载,并且可以安装misstar tool(里面有KP SS webshell KMS aria2 远程管理等插件:http://bbs.xiaomi.cn/t-12975500) 所以不想刷第三方固件,百毒了小米搭建WEB环境教程,发现只…

用html和css仿作小米官网(静态)

目录 一&#xff1a;准备工作 二&#xff1a;头部导航栏部分 三&#xff1a;中间照片部分 四&#xff1a;尾部文字部分​​​​​​​ 准备工作&#xff1a; 首先我们需要从小米官网的网页源文件上下载需要的图片等素材&#xff0c;其次我们需要准备一个reset.css的通用的…

小米android点击,自动点击器小米版

为你带来一款自动点击屏幕的软件免root版&#xff0c;这款自动点击器7.0小米版支持安卓7.0及以上系统的安卓用户&#xff0c;自动化点击操作更方便。 软件介绍 自动点击器帮你自动点击屏幕&#xff0c;无需ROOT权限。可以方便添加点击位置&#xff0c;设置点击速度。 类似于按键…

android小米手机上传图片,android 解决小米手机上选择照片路径为null的问题

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01; 之前做了一个获取相册选择图片的功能&#xff0c;后来测试人员在小米的手机 测试时出现崩溃现象。自己就在网上查找资料&#xff0c;发现是小米的获取图片路径的代码与其他的手机不一样&#xff0c;于是修改了代码…

小米8 se图片备份到电脑上

0、由于最近在抖音上面下了很多视频&#xff0c;所以想要备份下 1、第一步你要确定你的电脑和手机连的是同一个wifi网络&#xff1b; 2、然后点击小米手机自带的手机app&#xff0c;名字叫&#xff1a;文件管理 &#xff0c;选择分类–远程管理–如果wifi状态是黄色的下面就有…

小米4手机选择图库发送图片时崩溃

最近开发时遇见小米4&#xff0c;手机选择图库发送图片时崩溃的情况&#xff0c;查看logcat发现cusor查询时为null&#xff0c;查找资料解决此问题&#xff0c;在此记录下&#xff1a; if (data null) { return; } uri data.getData(); uri geturi(data);//解决方案 S…

小米商城头部实例

在用htmlcss写小米商城首页时&#xff0c;最繁琐的可谓是头部和导航栏&#xff0c;在这里对头部进行实现 可以看到头部有16个超链接形式&#xff0c;左边12个&#xff0c;右边4个&#xff0c;并且整个布局的内容是在中间宽度的&#xff0c;所以可以在头部标签嵌套一个宽度为122…