【Andorid X 项目笔记】魅族照片剪切问题(4)

本文详细介绍了在魅族手机上使用系统图片剪切功能遇到的问题及解决方法,包括调用代码、问题描述、解决步骤和代码实现。


 前言

魅族手机调用系统图片剪切功能的问题。

 

声明

  欢迎转载,但请保留文章原始出处:) 
    博客园:http://www.cnblogs.com

    农民伯伯: http://over140.cnblogs.com   

 

系列

1、【Andorid X 项目笔记】禁用ListView的Fling功能(1)

2、【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2) 

3、 【Andorid X 项目笔记】TextView字幕效果(3)

 

正文

一、调用图片剪切的代码 

     /**
     * 用于截取大图
     * 
     * 
@param  ctx
     * 
@param  uri
     * 
@param  outputX
     * 
@param  outputY
     * 
@param  requestCode
     
*/
     public  static  void cropImageUri(Activity ctx, Uri uri,  int outputX,  int outputY,  int requestCode,  boolean scale) {
        Intent intent =  new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, IMAGE_UNSPECIFIED);
        intent.putExtra("crop", "true"); // 发送裁剪信号
        intent.putExtra("outputX", outputX); // 裁剪区的宽
        intent.putExtra("outputY", outputY); // 裁剪区的高
        intent.putExtra("aspectX", 1); // X方向上的比例
        intent.putExtra("aspectY", 1); // Y方向上的比例
        intent.putExtra("scale", scale); // 是否保留比例
        
// intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // 直接输出文件
        intent.putExtra("return-data",  true);  // 是否返回数据
//         intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
        intent.putExtra("noFaceDetection",  true);  // 关闭人脸检测
        ctx.startActivityForResult(intent, requestCode);
    }

 

二、问题

参照魅族官方论坛帖子:com.android.camera.action.CROP照片剪辑的问题 

具体表现为剪切完成后在onActivityResult 中取不到data数据。其他机器目前没有发现这样的问题

 

三、解决办法 

                mPhoto = extras.getParcelable("data");
                 if (mPhoto ==  null) {
                    String filePath = extras.getString("filePath");
                     if (!StringUtils.isEmpty(filePath))
                        mPhoto = ImageUtils.decodeSampledBitmapFromFile(filePath, 400, 600);
                }

  代码说明:

 虽然魅族的机器没有返回data字段,但是返回了filePath,是相册选中地址的路径,可以把这个图片按尺寸获取一下。注意可能丢失剪切效果,目前暂时这样处理的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值