Est-il possible de créer un intérêt comme une mise en page sur Android en utilisant GridView
? Je veux créer une galerie d'images en utilisant GridView
mais je ne sais pas si c'est une bonne solution . Je ne veux pas créer trois LinearLayouts
(je pense que cette solution n'est pas bonne: listview de style Pinterest ou gridview dans Android )
Des idées ;)?
Créez une mise en page comme suit
<ScrollView...>
<LinearLayout....
Android:id="@+id/linear1"
orientation="horizontal">
<LinearLayout....
Android:id="@+id/linear2"
Android:layout_weight="0.33"
orientation="vertical">
<LinearLayout....
Android:id="@+id/linear3"
Android:layout_weight="0.33"
orientation="vertical">
<LinearLayout....
Android:layout_weight="0.33"
orientation="vertical">
</LinearLayout>
</ScrollView>
Ajoutez maintenant votre ImageView
dynamiquement dans les mises en page
linear1 = (LinearLayout) findViewById(R.id.linear1);
linear2 = (LinearLayout) findViewById(R.id.linear2);
linear3 = (LinearLayout) findViewById(R.id.linear3);
for(int i=0;i<n;i++)
{
ImageView iv = new ImageView(this);
iv.setImageResource(R.id.icon);
int j = count % 3; <----
if(j==0)
linear1.addView(iv);
else if(j==1)
linear2.addView(iv);
else
linear3.addView(iv);
}
sortie:
J'ai également joué avec cela (utilisé LinearLayout) mais à la fin, j'ai eu beaucoup de problèmes avec la consommation de mémoire (surtout quand j'ai dû recharger les éléments). J'ai opté pour une solution simple qui utilise deux ListViews synchronisés . De cette façon, je peux exploiter la mise en cache interne ce qui aide beaucoup. Pour ce faire, j'ai dû utiliser OnTouchListener et OnScrollListener qui synchronisent les listes. Voici un exemple:
Quelques bibliothèques utiles pour implémenter une vue de grille de type Pinterest:
Pour les visiteurs récents de cette question, je suggère d'utiliser RecyclerView
avec StaggedGridLayoutManager
. Il a plus qu'assez de fonctions et de flexibilité.
Un assistant autonome pour synchroniser le défilement de 2 ListViews: https://Gist.github.com/yanchenko/617979
J'utilise cette lib: https://github.com/huewu/PinterestLikeAdapterView .
Cela fonctionne plutôt bien. Le seul problème que j'ai, c'est que les setOnItemClickListener
et setOnItemLongClickListener
sont un peu bogués, alors j'ai placé les écouteurs directement sur convertView.
Cette bibliothèque provient de l'application Etsy: https://github.com/etsy/AndroidStaggeredGrid