J'essaie d'ajouter une image dans LinearLayout
(linearForImage) dynamiquement, mais cela ne fonctionne pas.
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) }
Je pense que j'aurai 4 ou 5 images dans le LinearLayout
, mais aucune image n'est définie.
4 Réponses :
Veuillez essayer le code ci-dessous, cela fonctionne pour moi.
<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>
Voici le fichier xml.
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) }
Comment augmenter la taille de l'image?
LinearLayout.LayoutParams (120, 120)
Vous pouvez modifier la mise en page, comme suit ...
Exemple: (En 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); }
définir dans la vue Image imageView.setImageResource (R.drawable.image)
Il n'y a pas d'objet imageView dans la question.
défini en vue de l'image
ivImage.setImageResource(your drawable image)
pourquoi ne pas créer un fichier xml pour la vue image et l'ajouter à votre mise en page linéaire.?
@AtifAbbAsi Pour un scénario réel, le nombre d'images ne doit pas être fixé. Je viens d'écrire un petit exemple pour cela.
Créez une instance d'image dans la boucle for et supprimez cette boucle removeView de for.
@Chirag fait, mais les images ne s'affichent toujours pas.
Quelle est l'orientation de la disposition linéaire?
@Chirag horizontal
Montrez-moi votre fichier xml.
continuons cette discussion dans le chat
@JohnJoe comme RecycleView, vous pouvez utiliser une seule mise en page (pour différentes valeurs) pour ajouter autant d'images que vous le souhaitez en gonflant cette mise en page dans votre mise en page linéaire.