将图像从RecyclerView转换为位图

时间:2018-08-31 14:05:15

标签: android android-intent android-recyclerview kotlin

我需要从我的recyclerview发送一个特定图像,该图像已被单击到将显示该图像的新活动中。问题是如何将图像转换为位图或类似的图像,以便可以使用intent发送图像? 这是我的代码:

RecyclerViewAdapter.kt

class ViewHolder(view: View) : RecyclerView.ViewHolder(view){

    fun bindItem(items: Item) {
        itemView.name.text = items.name
        itemView.desc.text = items.desc
        Glide.with(itemView.context).load(items.image).into(itemView.image)

        itemView.setOnClickListener {
            itemView.context.startActivity(itemView.context.intentFor<DetailsActivity>("image" to bitmap, "name" to items.name, "desc" to items.desc))
        }
    }
}

SecondActivity

val intent = intent
    name = intent.getStringExtra("name")
    image = intent.getStringExtra("image")
    desc = intent.getStringExtra("desc")

    nameTextView.text = name
    descTextView.text = desc
    Glide.with(this)
            .load(image)
            .into(imgPhotos)

我已经尝试了该站点上提供的所有代码,但它们均无法正常工作。谢谢!

2 个答案:

答案 0 :(得分:0)

将图像转换为byteArray并通过intent传递。通过另一侧的意图提取数据,并将byteArray转换为位图。

答案 1 :(得分:0)

我没有使用Glide,但应该是这样。

delete object.name

您可以直接发送位图,因为它是可打包的

 lateinit imageBitmap : Bitmap

 Glide.with(this).asBitmap().load("YOUR_URL").into(object: Target<Bitmap>{
      override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
          imageBitmap = resource
      }
 })

要获取位图

intent.putExtra("image",imageBitmap)