Androide galería circular?
Soy un novato a android development.Now me gustaría hacer galería de vista como circular como imagen como below.The cosas es que quiero ampliar la imagen del centro cuando el usuario se desplace de izquierda a derecha y de derecha a izquierda. ¿Hay tutoriales para eso?
Lo que quiero es que la imagen que se ha barrido necesita ser ampliada mientras está en el centro. Pensé que podría hacerlo con la Galería. Pero el ejemplo del desarrollador android no es el que quiero. 🙁
- OutOfMemoryError al cargar imágenes en RecyclerView
- La falla de carga de AWS S3 encontró una excepción que no se pudo volver a intentar en Android
- Cómo obtener un mapa de bits de una imagen sin procesar
- aplicación es lenta con imágenes en android
- Las imágenes de Android me confunden
- ¿Cómo obtener las URL de todas las imágenes almacenadas en firebase en Android?
- Bordes dentados en imágenes presentadas en Android
- Imagen de escala de Android de setImageBitmap
- Cómo establecer bitmap en mapa de bits existente como su fondo
- Mostrar imágenesVistas con tema de animación
- ¿Cómo subir una imagen al almacenamiento de Firebase?
- Guardar imagen en sdcard desde un recurso de drawble en Android
- Cómo seleccionar aleatoriamente los recursos (R.drawable.xxxx)
Si desea ampliar la imagen seleccionada en el centro hay una forma posible. En su método onItemSelected, simplemente llame a una animación para ampliar el objeto. La propiedad de la galería es que siempre está centralizada. Por lo tanto, siempre se seleccionará el elemento central. Espero que funcione
<?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>
Recuerde que usted tendrá que almacenar la vista anterior como cuando el elemento se aleja del centro que debe ponerse al tamaño normal.
Así que usted puede tener dos vistas – prevView y currView.
Haga la animación en el currView.
Gracias,
Sen
puedes probar:
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; } }}
He creado mi propio tutorial para esto: http://evgeni-shafran.blogspot.com/2011/08/tutorial-custom-gallery-circular-and.html
Para que sea circular que necesita para hacer pensar que tiene un montón de elementos, mucho más de lo que realmente tiene.
Y luego haciendo position = position% items.length creas algo como (lo mostraré para 3 items): 1,2,3,1,2,3,1,2,3,1,2,3,1 , 2,3,1,2,3,1,2,3 Y entonces vaya al centro así que incluso si el pergamino mucho él no viene cerca al extremo. 1,2,3,1,2,3,1,2,3, -> 1 <-, 2,3,1,2,3,1,2,3,1,2,3
Para que se seleccione: es necesario anular setOnItemSelectedListener y manipular el tamaño. No se olvide de guardar una referencia a su última vista, así que cuando llegue a la siguiente puede hacer que se vea regular, no ampliada.
He implementado tanto de esto en mi tutorial enumerado anteriormente