0
votes

Ajoutez de nombreuses images dans la vue horizontale de défilement?

Je veux mettre beaucoup plus d'images dans la vue horizontale de défilement, s'il vous plaît assumer des images comme, a.jpeg, b.jpeg, c.jpeg, (d, e, f, g, h, i) .jpeg et suggesst me Pour les impliquer dans ScrollView?

J'ai essayé de faire en ajoutant de nombreuses images comme indiqué ci-dessous. p>

Cette méthode est en retard: p>

 <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/a.jpeg"/>

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/b.jpeg"/>

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/c.jpeg"/>

and many other images....

    </HorizontalScrollView>


0 commentaires

3 Réponses :


2
votes

Vous utilisez vos images directement sans gérer correctement la mémoire que les bitmaps prennent dans Android.

Lorsque vous utilisez directement une image dans imageview à l'aide de Android: SRC Tag, elle est liée au décalage si les images sont trop grandes.

Image Chargement de bibliothèques comme Glide permet de charger des images en redimensionnant l'image en fonction du DPI de l'appareil.

En bref: si vous chargez une image 1920 * 1080 à l'intérieur d'un imageview , sur un périphérique directement, il chargera l'image complète, c'est-à-dire une image complète de la résolution, gaspillant beaucoup de mémoire faisant la même mémoire. , signifiant, plus bégayant / décalage en défilement. Mais lorsque vous chargez ces mêmes images à l'aide des bibliothèques de chargement des images, ils redimensionnent l'image, la signification, si l'appareil est 1080P, votre image est une résolution de 4k, et si votre imageview remplit l'écran (en supposant que l'image correspond parfaitement à l'appareil), cette bibliothèque redimensionnera et rendra l'image 1080p, puis la mettra à l'intérieur de l'image , enregistrant beaucoup de mémoire nécessaire pour dessiner bitmaps.


0 commentaires

0
votes

Ajouter des images Dynamiquement

//int imageArray[] = [ R.drawable.ic_launcher, ....];

 HorizontalScrollView horizontalScrollView = (HorizontalScrollView) 
 findViewById(R.id.horizontalScrollView);
 for(int i=0; i< imageArray.length; i++) {
    ImageView image = new ImageView(MainActivity.this);
    image.setBackgroundResource(imageArray[i]);
    horizontalScrollView.addView(image);
 }


3 commentaires

Je ne veux pas de manière dynamique, je veux permettre à l'utilisateur de voir les images en défilement l'un après l'autre, s'il vous plaît @arwyshelke aidez-moi


Aussi loin que je sache, dans ce cas, il n'y a pas de solution, vous devez faire du compromis avec votre code. Son seulement 100% de cette façon.


@Aarzu, je vous ai déjà dit la réponse à votre problème. Au moins la lire au lieu de demander de l'aide à d'autres personnes. Au moins lu, allez sur le lien mentionné. Je suis venu ici après avoir vu ma réponse a été évoquée une fois. Ce que cette personne a dit est la même que d'ajouter ces images ImageView via XML. Si vous utilisez la bibliothèque de chargement de l'image comme je l'ai dit, cela résoudra votre problème.



0
votes

Je pense que vous devez utiliser un recyclerview au lieu de horizontalscrollview pour afficher dynamiquement vos images.


0 commentaires