android Kreis Galerie?
-
26-09-2019 - |
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?
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. : (
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