微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从图库中选取图片

如何解决从图库中选取图片

我想从图库中选择图像放入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 举报,一经查实,本站将立刻删除。