我正在使用Kotlin中的图像,并且尝试使用翻新将图像上传到服务器。但是在上传之前,我想在预览中显示图像。我一直在阅读有关如何执行此操作的信息,但仍然没有找到正确的解决方案。 这是直到现在的我的代码
sudo apt-get update
请帮助我!
答案 0 :(得分:0)
从图库中选择图像或从手机摄像头捕获图像后,可以使用 Crop Intent
来裁剪图像 override fun onActivityResult(requestCode: Int, resultCode: Int, data:
Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK)
when(requestCode){
GALLERY -> {
val selectedImage: Uri = data!!.data
cropImage(selectedImage,CROP_REQUEST)
}
CROP_REQUEST->{
if (data != null) {
val imageUri = data.data
//now you can send this cropped image to the server
}
}
}
// function for croping the image
fun cropImage(uri: Uri,CROP_REQUEST:Int) {
this.grantUriPermission(
"com.android.camera", uri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
val intent = Intent("com.android.camera.action.CROP")
intent.setDataAndType(uri, "image/*")
//Android N need set permission to uri otherwise system camera don't
//has permission to access file wait crop
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
intent.putExtra("crop", "true")
//The proportion of the crop box is 1:1
intent.putExtra("aspectX", 1)
intent.putExtra("aspectY", 1)
//Crop the output image size
intent.putExtra("outputX", 500)
intent.putExtra("outputY", 500)
//image type
intent.putExtra("outputFormat", "JPEG")
intent.putExtra("noFaceDetection", true)
//true - don't return uri | false - return uri
intent.putExtra("return-data", false)
startActivityForResult(intent, CROP_REQUEST)
}
答案 1 :(得分:0)
如果您只想预览显示缩略图,则可以使用以下代码获取。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
val imageBitmap = data.extras.get("data") as Bitmap
imageView.setImageBitmap(imageBitmap)
}
}
您可以在android开发人员网站上参考完整的实现here。