Выберите изображения из галереи

#android #kotlin #android-recyclerview #resources #image-gallery

#Android #котлин #android-recyclerview #Ресурсы #изображение-галерея

Вопрос:

Я хочу выбрать изображение из галереи в RecyclerView. Я могу открыть галерею, но не могу отображать изображения в recyclerview. Трудности возникают внутри onBindView, что мне нужно написать, чтобы выбрать изображения из галереи / или установить ресурс изображения в качестве галереи.

Мой код адаптера :

 package com.example.collector

import android.content.Context
import android.media.Image
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
import java.util.ArrayList

class ImageAdapter(val context: Context, val itemList : List<Image>):RecyclerView.Adapter<ImageAdapter.ImageViewHolder>() {

    class ImageViewHolder(view:View):RecyclerView.ViewHolder(view){
        val ImageView: ImageView = view.findViewById(R.id.imgPick)


    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ImageViewHolder {
        val view = LayoutInflater.from(context).inflate(R.layout.image_row,parent,false)
        return ImageViewHolder(view)
    }

    override fun getItemCount(): Int {
        return itemList.size
    }

    override fun onBindViewHolder(holder: ImageViewHolder, position: Int) {

    }
}
  

My ImageActivity

 package com.example.collector

import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.MenuItem
import android.view.View
import android.widget.ImageView
import android.widget.Toast
import android.widget.Toolbar
import androidx.core.app.ActivityCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.collector.R.id.activity_chooser_view_content
import com.example.collector.R.id.imgFloat
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_image.*
import kotlinx.android.synthetic.main.image_row.*
import kotlinx.android.synthetic.main.image_row.view.*
import kotlin.properties.Delegates

class ImageActivity : AppCompatActivity() {

    val REQUJEST_SELECT_IMAGE = 54
    val image_uri :Uri?=null
    lateinit var recyclerImage:RecyclerView
    lateinit var layoutManager: RecyclerView.LayoutManager




    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_image)

        recyclerImage = findViewById(R.id.recyclerImage)
        layoutManager = LinearLayoutManager(this)

        ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),54)

        imgFloat.setOnClickListener {
            val intent = Intent(Intent.ACTION_GET_CONTENT)
            intent.type = "image/*"
            if (intent.resolveActivity(packageManager) != null){
                startActivityForResult(intent,REQUJEST_SELECT_IMAGE)
            }
        }


    }



    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        val id = item.itemId
        if(id==android.R.id.home){
            val intent = Intent(this@ImageActivity,MainActivity::class.java)
            startActivity(intent)
            finish()
        }
        return super.onOptionsItemSelected(item)
    }


    override fun onBackPressed() {
        val intent = Intent(this@ImageActivity,MainActivity::class.java)
        startActivity(intent)
        finish()
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == Activity.RESULT_OK amp;amp; requestCode == REQUJEST_SELECT_IMAGE){
            imgPick.setImageURI(data?.data)
        }
    }

   }
  

Внутри onBindView, что мне нужно для запроса ресурсов изображения
пожалуйста, предложите мне ответ