【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,是相冊選中地址的路徑,可以把這個圖片按尺寸獲取一下。注意可能丟失剪切效果,目前暫時這樣處理的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM