Добавить изображение динамически

Я пытаюсь добавить изображение в LinearLayout (linearForImage) динамически, но это не работает.

val image = ImageView(activity)
        image.setLayoutParams(LinearLayout.LayoutParams(80, 60))

        for (i in 1..5){
            linearForImage.removeView(image)
            image.setImageResource(R.drawable.ic_add)
            linearForImage.addView(image)
        }

Я ожидаю, что получу 4 или 5 изображений в LinearLayout, но изображения не установлены.

почему бы вам не создать XML-файл для просмотра изображения и не добавить его в свой Linearlayout?

Atif AbbAsi 12.02.2019 06:12

@AtifAbbAsi В реальном сценарии количество изображений не должно быть фиксированным. Я просто пишу небольшой пример для этого.

John Joe 12.02.2019 06:14

Создайте экземпляр изображения в цикле for и удалите этот removeView из цикла for.

Chirag 12.02.2019 06:22

@Chirag готово, но изображения все еще не отображаются.

John Joe 12.02.2019 06:25

Какова ориентация Linearlayout?

Chirag 12.02.2019 06:26

@Чираг горизонтальный

John Joe 12.02.2019 06:28

Покажи мне свой xml-файл.

Chirag 12.02.2019 06:32

Давайте продолжить обсуждение в чате.

Chirag 12.02.2019 06:33

@JohnJoe, как и RecycleView, вы можете использовать один макет (для разных значений), чтобы добавить столько изображений, сколько хотите, раздувая этот макет в линейном макете.?

Atif AbbAsi 12.02.2019 06:46
2
9
1 582
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Пожалуйста, попробуйте код ниже, он работает для меня.

for (i in 1..5){
   val imageView = ImageView(this)
   imageView.layoutParams = LinearLayout.LayoutParams(80, 60) // value is in pixels
   imageView.setImageResource(R.mipmap.ic_launcher)
   linearForImage.addView(imageView)
}

Вот xml-файл.

<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:orientation = "vertical" android:layout_width = "match_parent"
    android:layout_height = "match_parent">



    <LinearLayout
        android:id = "@+id/linearForImage"
        android:orientation = "vertical"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"></LinearLayout>


</RelativeLayout>

Как увеличить размер изображения?

John Joe 12.02.2019 06:56

LinearLayout.LayoutParams(120, 120)

Chirag 12.02.2019 07:22

Вы можете изменить макет следующим образом...

Пример: (в Java)

LinearLayout linearForImage = (LinearLayout)findViewById(R.id.imageLayout);
  for(int i=1;i<6;i++)
    {
      ImageView image = new ImageView(this);
      image.setLayoutParams(new android.view.ViewGroup.LayoutParams(80,60));
      image.setMaxHeight(20);
      image.setMaxWidth(20);

      // Adds the view to the layout
       linearForImage.addView(image);
}

установить в представлении изображения imageView.setImageResource(R.drawable.image)

В вопросе нет объекта imageView.

Fer 07.05.2020 09:05

установить с учетом изображения

ivImage.setImageResource(your drawable image)

Другие вопросы по теме