【问题标题】:Show image on preview before uploading to server in android在android中上传到服务器之前在预览中显示图像
【发布时间】:2019-02-27 09:13:35
【问题描述】:

我正在使用 kotlin 中的图像,我正在尝试使用改造将图像上传到服务器。但在上传之前,我想在预览中显示图像。我一直在阅读有关如何执行此操作的信息,但仍未找到正确的解决方案。 这是我的代码直到这一刻

fun chooseImageFromGallery() {
    val galleryIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
    startActivityForResult(galleryIntent, GALLERY)
}

private fun takePhotoFromCamera() {
    val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    startActivityForResult(cameraIntent, CAMERA)
}


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



            }
        }
}

请帮帮我!

【问题讨论】:

  • 您可以使用 glide 来处理该图像并显示它。

标签: android image kotlin retrofit android-image


【解决方案1】:

如果您只想显示缩略图以供预览,您可以使用以下代码获取它。

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

【讨论】:

    【解决方案2】:

    从图库中选择图像或通过手机摄像头捕获图像后预览图像可以使用各种库(如 Picasso、Glide、Fresco 等)完成,或者您可以将其转换为位图图像并直接设置为 ImageView

      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
                Picasso.get().load(selectedImage).into(imageView2);//Using Picasso            
                Glide.with(this).load(selectedImage).into(imageView2);//Using Glide
    
              }
    
             }
        }
    

    【讨论】:

    • 我想先在预览版上显示,如果你能帮我解决这个问题,我将不胜感激:) 无论如何谢谢你的回答@Ravi Kumar
    • 相机应用程序本身使您能够在捕获图像后查看/重新拍摄图像,一旦图像被接受,您就可以根据需要裁剪图像。如果您之后仍需要显示预览,请打开一个单独的活动并在该活动中显示此结果图像
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2011-05-26
    相关资源
    最近更新 更多