Сделайте переработчикПросмотрите, чтобы выбрать изображения с камеры или галереи, нажав на элементе Восстановитель - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу, чтобы в качестве просмотра изображения сначала использовался ресайлер в виде изображения с логотипом добавления изображения, а после щелчка на нем выберите изображение из галереи и установите в качестве фона для просмотра изображения, а фоном для второго элемента добавьте логотип изображения

* 1002.*enter image description here

Ответы [ 3 ]

0 голосов
/ 19 сентября 2019

Вам необходимо установить по умолчанию добавление логотипа изображения в ImageView. Внутри адаптера добавьте OnClickListener () в ImageView и напишите код, чтобы открыть Галерею для получения изображений, это поможетвы.

0 голосов
/ 19 сентября 2019
  1. Добавьте переменную viewType в ваш класс данных.В вашем случае вы могли бы использовать «Button» и «Image».
  2. Установить значение viewType первого объекта как «Button»
  3. Использовать метод Multiple ViewHolder для реализации Recyclerview

Переопределить getItemViewType

override fun getItemViewType(position: Int): Int {
        return when (orders[position].viewType) {
            ViewType.Button-> 1
            ViewType.Image-> 2
            else -> 1
        }
    }

onCreateViewHolder

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
            val viewHolder: RecyclerView.ViewHolder
            when (viewType) {
                1 -> {
                    val buttonBinding = DataBindingUtil.inflate<ItemButtonBinding>(
                        LayoutInflater.from(parent.context),
                        R.layout.item_button, parent, false
                    )
                    viewHolder = ButtonViewHolder(buttonBinding .root)
                }
                2 -> {
                    val imageBinding = DataBindingUtil.inflate<ItemImageBinding>(
                        LayoutInflater.from(parent.context),
                        R.layout.item_image, parent, false)
                    viewHolder = ImageViewHolder(imageBinding .root)
                }
                else -> {
                    val imageBinding = DataBindingUtil.inflate<ItemImageBinding>(
                        LayoutInflater.from(parent.context),
                        R.layout.item_image, parent, false)
                    viewHolder = ImageViewHolder(imageBinding .root)
                }
            }
            return viewHolder
      }

onBindViewHolder

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

            when (holder.itemViewType) {
                1 -> {
                    val buttonViewHolder = holder as ButtonViewHolder
                    configureButtonViewHolder(buttonViewHolder , position)
                }
                2 -> {
                    val imageViewHolder = holder as ImageViewHolder
                    configureImageViewHolder(imageViewHolder , position)
                }
                else -> {
                    val imageViewHolder = holder as ImageViewHolder
                    configureImageViewHolder(imageViewHolder , position)
                }
            }
        }

Установите OnClickListener на Кнопку ItemView в Класс кнопки ViewHolder и поместите коды намерений средства выбора изображений внутри OnClickListener

См. ответ

0 голосов
/ 19 сентября 2019

Это можно сделать следующим образом

  1. Создать ArrayList с пользовательским объектом, содержащим URL-адрес изображения
  2. Добавить только один объект в ArrayList
  3. УстановитьАдаптер для отображения из ArrayList
  4. В держателе представления связывания представления рециркулятора, если URL не существует, покажите addimageLogo
  5. Затем нажмите на изображение, добавьте изображение (путь / URL) наобъект в позиции
  6. Как только изображение добавлено на объект, затем проверьте, есть ли у последнего объекта URL, затем снова укажите 2
  7. notifydataSetChanged ()

Пользовательский объект

public class URLContainer{

    public URLContainer(String url, String imageName) {
        this.url = url;
        this.imageName = imageName;
    }

    String url;
    String imageName;// you can use other  required properties if you want
}

ArrayList

private ArrayList<URLContainer> images = new ArrayList<>();

Для добавления одного объекта

private void addSingleContainer(){
        list.add(new URLContainer("",""));
}
...