Frage

Ich bin ein Neuling auf android development.Now Sie mag würde Galerie-Ansicht als Kreis wie Bild tun, wie below.The Dinge sind, dass ich das Zentrum Bild vergrößern möchte, wenn der Benutzer blättert von links nach rechts und von rechts nach links. Gibt es irgendwelche Tutorials für das?

eingeben Bild Beschreibung hier was ich will, ist das Bild, das Bedürfnis geklaut worden ist vergrößert werden, während es in der Mitte ist. Ich dachte, ich es mit Galerie tun konnte. aber das Beispiel aus dem Android-Entwickler ist nicht das, was ich will. : (

War es hilfreich?

Lösung


Wenn Sie das Zentrum ausgewählte Bild vergrößern wollen, ist es eine Möglichkeit. Auf Ihrer onItemSelected Methode, nur eine Animation nennt das Objekt zu vergrößern oder verkleinern. Die Eigenschaft der Galerie ist, dass es immer Mitte-gesperrt ist. So das zentrale Element wird immer ausgewählt. Hoffnung, dass die Arbeit wird ..

<?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>

Erinnern Sie sich, dass Sie die vorherige Ansicht zu speichern, werden als wenn das Element von der Mitte weg bewegt ist, sollte es auf die normale Größe gebracht werden.

So können Sie zwei Ansichten haben können -. PrevView und currView
Hat die Animation auf der currView.

Danke,
Sen

Andere Tipps

YouCan Versuch:

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; 
    } 
}}

habe ich mein eigenes Tutorial für diese: http://evgeni-shafran.blogspot.com /2011/08/tutorial-custom-gallery-circular-and.html

Für sie kreisförmig sein müssen Sie sie denken, dass es haben viele Einzelteile, viel mehr als Sie wirklich haben.

Und dann, indem sie Position = Position% items.length Sie so etwas wie schaffen (ich es für 3 Elemente angezeigt): 1,2,3,1,2,3,1,2,3,1,2, 3,1,2,3,1,2,3,1,2,3 Und gehen Sie dann in die Mitte so, auch wenn die Scroll viel er in der Nähe des Ende kommen werde nicht. 1,2,3,1,2,3,1,2,3, -> 1 <-, 2,3,1,2,3,1,2,3,1,2 3

Für sie ausgewählt werden: Sie müssen setOnItemSelectedListener außer Kraft zu setzen und die Größe zu manipulieren. Vergessen Sie nicht, einen Verweis auf die letzte Ansicht zu speichern, so dass, wenn Sie auf die nächste erhalten Sie es aussehen regelmäßig machen können, nicht vergrößert.

I umgesetzt beide in meinem Tutorial oben aufgeführten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top