2010-12-15 7 views
2

J'essaie de créer un personnalisé Galerie voir. Ou peut-être que je ne comprends pas ce que je suis censé faire ici. Je dois réécrire la méthode onFling() de la classe Gallery, mais je ne vois pas comment je peux le faire comme ma classe principale doit s'étendre de Activité .Comment faire une galerie personnalisée en android

J'ai essayé de faire une classe appelée CustomGallery qui s'étend Gallery, mais si je tente et exécuter l'application que j'obtenir un gros de la force.

Comment remplace-t-on la méthode onFling() pour une vue de galerie?

Merci!

EDIT

Je tentais la solution de Christian ci-dessous cependant, cette classe a toutes les erreurs sur elle. Clairement, je fais cela mal. Suggestions?

import android.content.Context; 
import android.util.AttributeSet; 
import android.widget.Gallery; 

public class CustomGallery extends Gallery 
{ 
    public CustomGallery(Context context) 
    { 
     super(context); 
    } 

    @Override 
    public Gallery(Context context) 
    { 
     this(context, null); 
    } 

    @Override 
    public Gallery(Context context, AttributeSet attrs) 
    { 
     this(context, attrs, R.attr.galleryStyle); 
    } 

    @Override 
    public Gallery(Context context, AttributeSet attrs, int defStyle) 
    { 
     // 
    } 
} 

EDIT 2

ok cela a fonctionner, thx Christian!

import android.content.Context; 
import android.util.AttributeSet; 
import android.widget.Gallery; 

public class CustomGallery extends Gallery 
{ 
    public CustomGallery(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 

    } 

} 

Répondre

5

Comment peut-on écraser la méthode onFling() pour une Galerie?

  1. Créer une classe qui étend la Galerie (par exemple CustomGallery, XD)
  2. substituez la méthode
  3. Utilisez cette classe dans votre mise en page.

Il suffit d'utiliser comme si vous utilisiez un Gallery:

<LinearLayout> 
... 
<com.your.package.CustomGallery 
    android:layout_width="fill_parent" 
    the rest of the things here/> 
... 
</LinearLayout> 

Assurez-vous de remplacer les méthodes du constructeur:

public class CustomGallery extends Gallery{ 

    public CustomGallery(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     // this could be empty, but must be here. 
     // since it's a view to use from XML, 
     // you must override this constructor 
     // (not only the one that receives a context) 
    } 
} 
+0

sacrément Christian ne dormez-vous sur votre clavier lol? Merci pour la réponse rapide! J'essaie maintenant. Tant que je suis ici, dans le xml, est-ce que j'appellerais Gallery ou CustomGallery (ou tout ce que j'ai appelé la classe)? – Ribs

+0

c'est quoi "Pepe"? -> public Pepe (Context context, AttributeSet attrs) – Ribs

+0

edit: Tant que je suis là, dans le .java, est-ce que je ferais un casting vers Gallery ou CustomGallery (ou tout ce que j'ai appelé la classe)? – Ribs

Questions connexes