从图库中选取图片

问题描述

我想从图库中选择图像放入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) {

    }
}

我的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 && requestCode == REQUJEST_SELECT_IMAGE){
            imgPick.setImageURI(data?.data)
        }
    }

   }

在OnBIndView内部,我需要调用什么图像资源 请建议我回答

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...