Я программирую на Swift в течение 3 лет, и я новичок в разработке для Android, я пытаюсь выбрать изображение из средства выбора изображений и перевести его в режим утилизации, я могу сделать это с помощью жестко закодированных изображений, которые находятся в моем папку для рисования, но я не знаю, как это сделать с выбранными изображениями.
Когда я выбираю изображение, оно успешно, и я могу показать путь к файлу изображения
I / System.out: путь к изображению Тони - /document/raw:/storage/emulated/0/Download/Max.jpg
Когда я пытаюсь добавить его в массив уже жестко закодированных имен изображений в папке для рисования, он показывает их изображения и в конце остается пустое пространство
Полагаю, это потому, что я получаю жестко запрограммированные изображения из папки для рисования, а это выбранное изображение, возможно, не в этой папке?
Я не хочу, чтобы в конечном продукте были жестко запрограммированные изображения, это было просто для того, чтобы увидеть, как работает вид корзины.
Я также не сохраняю их на устройстве, которое они загружают в базу данных после того, как все фиды заполнены в приложении, поэтому они не добавляются в список ролей камеры.
My Recycle View
class ArtistRecycleAdapter(val context: Context, val artists: List<ArtistImages>) : RecyclerView.Adapter<ArtistRecycleAdapter.ArtistHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ArtistHolder {
val view = LayoutInflater.from(context).inflate(R.layout.images_added, parent, false)
return ArtistHolder(view)
}
override fun getItemCount(): Int {
return artists.count()
}
override fun onBindViewHolder(holder: ArtistHolder, position: Int) {
holder.bindProduct(artists[position], context)
}
inner class ArtistHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val artistImage = itemView?.findViewById<ImageView>(R.id.artistImageMain)
fun bindProduct(artists: ArtistImages, context: Context) {
val resourceId = context.resources.getIdentifier(artists.artistImage, "drawable", context.packageName)
artistImage?.setImageResource(resourceId)
}
}
}
Результат моей активности
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == PICK_IMAGE_MULTIPLE && resultCode == Activity.RESULT_OK
&& null != data
) {
if (data.getClipData() != null) {
var count = data.clipData.itemCount
for (i in 0..count - 1) {
var imageUri: Uri = data.clipData.getItemAt(i).uri
getPathFromURI(imageUri)
println("Tony image uri is $imageUri")
}
} else if (data.getData() != null) {
var imagePath: String = data.data.path
Log.e("imagePath", imagePath)
println("Tony image path is $imagePath")
DataService.artistImages.add(ArtistImages(imagePath))
adapter.notifyDataSetChanged()
}
}
}