使用Kotlin将Image从ImageView传递到Android中的另一个Activity

时间:2017-11-20 06:39:03

标签: android image android-intent kotlin

如何使用ImageViewKotlin中选择的图片传递到Android中的其他活动?

这是使用内部存储选择ImageView内的图像的方法,我需要将图像传递给另一个活动

 fun Loadimage()
    {
         var intent = Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
         startActivityForResult(intent,ImageCode)
     }

     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
         if (requestCode==ImageCode && data!=null && resultCode== Activity.RESULT_OK)
         {
             val selectedImage = data.data
             val filepath = arrayOf(MediaStore.Images.Media.DATA)
             val cursor = contentResolver.query(selectedImage,filepath,null,null,null)
             cursor.moveToFirst()
             val Index = cursor.getColumnIndex(filepath[0])
             val Picture = cursor.getString(Index)
             cursor.close()
             imageView.setImageBitmap(BitmapFactory.decodeFile(Picture))
         }
     }

2 个答案:

答案 0 :(得分:2)

您可以使用下面的Intents将Picture变量传递给下一个活动

val intent = Intent(this, NextActivity::class.java)
intent.putExtra("picture", Picture)
startActivity(intent)

然后在NextActivity中,在onCreate方法中,您可以使用

获取图片
 val Picture = getIntent().getStringExtra("picture")

答案 1 :(得分:0)

NextActivity中:

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val postImage = findViewById<ImageView>(R.id.post_image)
    myPic = postImage
}

companion object {
    lateinit var myPic: ImageView()
}

在第一个活动中:

NextActivity.myPic = Picture