#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, что мне нужно для запроса ресурсов изображения
пожалуйста, предложите мне ответ