Я пытаюсь добавить изображение в 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, но изображения не установлены.
@AtifAbbAsi В реальном сценарии количество изображений не должно быть фиксированным. Я просто пишу небольшой пример для этого.
Создайте экземпляр изображения в цикле for и удалите этот removeView из цикла for.
@Chirag готово, но изображения все еще не отображаются.
Какова ориентация Linearlayout?
@Чираг горизонтальный
Покажи мне свой xml-файл.
Давайте продолжить обсуждение в чате.
@JohnJoe, как и RecycleView, вы можете использовать один макет (для разных значений), чтобы добавить столько изображений, сколько хотите, раздувая этот макет в линейном макете.?
Пожалуйста, попробуйте код ниже, он работает для меня.
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>
Как увеличить размер изображения?
LinearLayout.LayoutParams(120, 120)
Вы можете изменить макет следующим образом...
Пример: (в 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.
установить с учетом изображения
ivImage.setImageResource(your drawable image)
почему бы вам не создать XML-файл для просмотра изображения и не добавить его в свой Linearlayout?