我只是通过参考youtube教程和StackOverflow上的一些答案(this和this)来尝试裁剪图像。
我注意到,对于较小的" 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")
}
}
所以我的问题是,
另外,我试图找到有关 com.android.camera.action.CROP 的参数的信息,但我没有适当的术语来搜索谷歌。我试图在谷歌搜索" com.android.camera.action.CROP","动作裁剪图像意图"等等希望我会找到与此相关的文档,但它没有&# 39;工作。因此,如果可能,请在评论部分提及文档页面的链接。
提前谢谢。