问题描述
我想从图库中选择图像放入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 (将#修改为@)