多大"输出X"可以在裁剪图像时制作?

时间:2018-06-13 09:27:23

标签: android android-intent android-camera-intent

我只是通过参考youtube教程和StackOverflow上的一些答案(thisthis)来尝试裁剪图像。

我注意到,对于较小的" outputX "像100,我能够裁剪所有图像(至少我尝试过)。但是当我增加" outputX "的价值时大约720我的应用程序崩溃了一些图像,而较小尺寸的图像被正确裁剪。

我试图调试崩溃实际发生的地方并发现它发生在

之后
startActivityForResult(CropIntent,CROP_RESULT)

之前,

onActivityResult().

我尝试将try catch块用于startActivityForResult,但是当问题发生时,应用程序崩溃而不返回catch部分。

我的代码如下,

fun cropImage(){
    try {
        val displayMetrics = DisplayMetrics()
        windowManager.defaultDisplay.getMetrics(displayMetrics)

        val width : Int = displayMetrics.widthPixels
        //on my device displayMetrics.widthPixels returns 720 and at this value app crashes
        //instead if hard code value of 100 app works fine

        val height : Int = Math.floor(width * 9 /16.toDouble()).toInt()

        CropIntent = Intent("com.android.camera.action.CROP")
        CropIntent?.setDataAndType(uri , "image/*")
        CropIntent?.putExtra("crop","true")
        CropIntent?.putExtra("outputX",width)
        CropIntent?.putExtra("outputY",height)
        CropIntent?.putExtra("aspectX",16)
        CropIntent?.putExtra("aspectY",9)
        CropIntent?.putExtra("scaleUpIfNeeded",true)
        CropIntent?.putExtra("return-data",true)

        startActivityForResult(CropIntent,1)
    }catch (e : Throwable){
        Log.e(TAG,"Image have following faults : $e")
    }
}

所以我的问题是,

  • 多大" outputX "可以吗?
  • 发生崩溃时如何处理此类情况?

另外,我试图找到有关 com.android.camera.action.CROP 的参数的信息,但我没有适当的术语来搜索谷歌。我试图在谷歌搜索" com.android.camera.action.CROP","动作裁剪图像意图"等等希望我会找到与此相关的文档,但它没有&# 39;工作。因此,如果可能,请在评论部分提及文档页面的链接。

提前谢谢。

0 个答案:

没有答案