Question

Je suis un newbie à Android development.Now je voudrais voir la galerie comme circulaire comme l'image que les choses dessous.Procédé est que je veux agrandir l'image centrale lorsque l'utilisateur défilement de gauche à droite et de droite à gauche. Y at-il des tutoriels pour cela?

entrer dans la description d'image ici ce que je veux est l'image qui est passée dans le lecteur besoin d'être élargi alors qu'il est au centre. Je pensais que je pouvais le faire avec la Galerie. mais l'exemple du développeur Android n'est pas celui que je veux. : (

Était-ce utile?

La solution


il y a un moyen possible si vous voulez agrandir le centre image sélectionnée. Sur votre méthode onItemSelected, il suffit d'appeler une animation pour agrandir l'objet. La propriété de la galerie est qu'il est toujours verrouillé centre. Ainsi, l'élément central sera toujours sélectionné. L'espoir qui fonctionne ..

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false"
    android:fillAfter="true"
>
<scale 
       android:fromXScale="1.0"
       android:toXScale="1.50"
       android:fromYScale="1.0"
       android:toYScale="1.50"
       android:duration="600"
       android:pivotX="50%"
       android:pivotY="50%"
       android:fillAfter="true"/>

</set>

Rappelez-vous que vous devez stocker la vue précédente que lorsque l'élément est de déplacer du centre, il devrait être mis à la taille normale.

Vous pouvez avoir deux vues -. PrevView et currView
Faites l'animation sur le currView.

Merci,
Sen

Autres conseils

essayer youcan:

public class TestGallery extends Activity {
/** Called when the activity is first created. */
private Integer[] mImageIds = { R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4 }; 

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Gallery g = (Gallery) findViewById(R.id.gallery); 
    g.setAdapter(new ImageAdapter(this)); 

    g.setOnItemClickListener(new OnItemClickListener() { 
        public void onItemClick(AdapterView parent, View v, int position, long id) { 
            if (position >= mImageIds.length) { 
                position = position % mImageIds.length; 
            } 
            Toast.makeText(TestGallery.this, "" + position, Toast.LENGTH_SHORT).show(); 
        } 
    }); 

}

public class ImageAdapter extends BaseAdapter { 
    int mGalleryItemBackground; 
    private Context mContext; 

    public ImageAdapter(Context c) { 
        mContext = c; 
        TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); 
        mGalleryItemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0); 

        a.recycle(); 
    } 

    public int getCount() { 
        return Integer.MAX_VALUE; 
    } 

    public Object getItem(int position) { 
        if (position >= mImageIds.length) { 
            position = position % mImageIds.length; 
        } 
        return position; 
    } 

    public long getItemId(int position) { 
        if (position >= mImageIds.length) { 
            position = position % mImageIds.length; 
        } 
        return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
        ImageView i = new ImageView(mContext); 
        if (position >= mImageIds.length) { 
            position = position % mImageIds.length; 
        } 
        i.setImageResource(mImageIds[position]); 
        i.setLayoutParams(new Gallery.LayoutParams(80, 80)); 
        i.setScaleType(ImageView.ScaleType.FIT_XY); 
        i.setBackgroundResource(mGalleryItemBackground); 
        return i; 
    } 

    public int checkPosition(int position) { 
        if (position >= mImageIds.length) { 
            position = position % mImageIds.length; 
        } 
        return position; 
    } 
}}

J'ai créé mon propre tutoriel pour cela: http://evgeni-shafran.blogspot.com /2011/08/tutorial-custom-gallery-circular-and.html

Pour qu'il soit circulaire que vous devez faire penser qu'il a beaucoup d'éléments, beaucoup plus que vous avez vraiment.

Et puis en faisant position = position de% items.length vous créez quelque chose comme (je le montrer pour 3 articles): 1,2,3,1,2,3,1,2,3,1,2, 3,1,2,3,1,2,3,1,2,3 Et puis allez au milieu même si le rouleau beaucoup il wont venir près de la fin. 1,2,3,1,2,3,1,2,3, -> 1 <-, 2,3,1,2,3,1,2,3,1,2 , 3

Pour qu'il soit sélectionné: vous devez remplacer setOnItemSelectedListener et manipuler la taille. Ne pas oublier d'enregistrer une référence à votre dernière vue alors quand vous arrivez à la suivante, vous pouvez le faire paraître régulièrement, pas agrandie.

Je mis en œuvre tous les deux dans mon tutoriel ci-dessus

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top