2017-08-09 69 views
0

圖像是作物,並在棉花糖及以上版本的清單中成功查看,但不能在棉花糖下工作。我認爲,如果我們選擇谷歌照片作物比它在其他情況下工作,它的nont工作。作物功能正在棉花糖或以上工作,但不能在棉花糖下工作

另外在我的情況下,運行時許可已經提供。

代碼點擊圖像從相機

Uri fileUri; 

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File file = new File(getExternalCacheDir(), String.valueOf(System.currentTimeMillis()) + ".jpg"); 
    fileUri = Uri.fromFile(file); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
    startActivityForResult(intent, 501); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, final Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 

     case 501: 
      isFromOneActivityToAnother = true; 
      ImageCropFunction(); 
      //startCropImageActivity(fileUri); 
      break; 

     case 502: 
      uriImageListForServer.add(getImageContentUri(getApplicationContext(), new File((fileUri + "").substring(7, (fileUri + "").length())))); 
      break; 
    } 
} 

public void ImageCropFunction() { 
    try { 
     isFromOneActivityToAnother = true; 
     Intent CropIntent = new Intent("com.android.camera.action.CROP"); 
     CropIntent.setDataAndType(fileUri, "image/*"); 
     CropIntent.putExtra("crop", "true"); 
     CropIntent.putExtra("outputX", 2048); 
     CropIntent.putExtra("outputY", 2048); 
     CropIntent.putExtra("scaleUpIfNeeded", true); 
     CropIntent.putExtra("return-data", true); 

     startActivityForResult(CropIntent, 502); 
    } catch (ActivityNotFoundException e) { 

    } 
} 

public static Uri getImageContentUri(Context context, File imageFile) { 
    String filePath = imageFile.getAbsolutePath(); 
    Cursor cursor = context.getContentResolver().query(
      MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
      new String[]{MediaStore.Images.Media._ID}, 
      MediaStore.Images.Media.DATA + "=? ", 
      new String[]{filePath}, null); 
    if (cursor != null && cursor.moveToFirst()) { 
     int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID)); 
     cursor.close(); 
     return Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + id); 
    } else { 
     if (imageFile.exists()) { 
      ContentValues values = new ContentValues(); 
      values.put(MediaStore.Images.Media.DATA, filePath); 
      return context.getContentResolver().insert(
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
     } else { 
      return null; 
     } 
    } 
} 
+1

查看https://commonsware.com/blog/2013/01/23/no-android-does-not-have-crop-intent.html – akash93

回答