Cómo aumentar el tamaño de la vista de imagen en Android
Estoy trabajando en un proyecto que requiere que implemente dos vistas de desplazamiento horizontal con una vista de imagen entre ellas. Me gustaría ampliar el tamaño de la vista de imagen para llenar el espacio entre la vista de desplazamiento. Fui a través del código de muestra, pero no parece mencionar en cualquier parte del tamaño de la vista de imagen. He incluido el código debajo después de la imagen que describe mi problema.
- ¿Cuál es la forma correcta de usar v8 :: Locker, y por qué debo usarlo?
- ¿Cómo usar Android build.xml en eclipse?
- ¿Cómo pasar la referencia (no serializable) de una actividad a otra?
- Captura de cámara Android produce vídeo verde y bloque
- ¿Dónde puedo encontrar google-play-services_lib.jar?
public class Gallery2DemoActivity extends Activity { private Gallery gallery,gallery1; private ImageView imgView; private Integer[] Imgid = { R.drawable.a_1, R.drawable.a_2, R.drawable.a_3, R.drawable.a_4, R.drawable.a_5, R.drawable.a_6, R.drawable.a_7 }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gallery = (Gallery) findViewById(R.id.examplegallery); gallery.setAdapter(new AddImgAdp(this)); gallery1 = (Gallery)findViewById(R.id.examplegallery1); gallery1.setAdapter(new AddImgAdp(this)); imgView = (ImageView)findViewById(R.id.ImageView01); imgView.setImageResource(Imgid[0]); gallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { imgView.setImageResource(Imgid[position]); } }); } public class AddImgAdp extends BaseAdapter { int GalItemBg; private Context cont; public AddImgAdp(Context c) { cont = c; TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme); GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0); typArray.recycle(); } public int getCount() { return Imgid.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imgView = new ImageView(cont); imgView.setImageResource(Imgid[position]); imgView.setLayoutParams(new Gallery.LayoutParams(110, 100)); imgView.setScaleType(ImageView.ScaleType.FIT_XY); imgView.setBackgroundResource(GalItemBg); return imgView; } }
Este es mi archivo principal XML.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/examplegallery" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/ImageView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/examplegallery1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
A continuación se muestra mi archivo de atributos:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="GalleryTheme"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources>
- 'RealmNoticeModelClass' tiene una clave primaria, use 'createObject (Class <E>, Object)' en su lugar
- Obtener ruta de acceso y nombre de archivo de la imagen de galería seleccionada en Android
- ¿Debería evitarse también el finalizador de Java para la gestión del ciclo de vida de los objetos nativos?
- ¿Cómo implemento correctamente Immersive Full-Screen Mode en Android?
- Android Studio - No se pudo determinar la versión de Java
- Conectando a la base de datos externa - Aplicación de Android
- Error de PagerSlidingTabStrip cuando está abierto
- Conectarse a través del nombre del servicio Bluetooth
Vinner,
El problema aquí es realmente dos cuestiones:
-
El tamaño del ImageView se basa en el padre, lo que significa que comparte su ancho y altura.
-
La imagen se redimensiona para que coincida con la dimensión más limitante (ancho).
La forma más fácil de manejar esto es establecer el ScaleType del ImageView. Hay una serie de tipos de escala, pero el que probablemente desea es Center Crop . En código, esto se hace por view_name.setScaleType(ImageView.ScaleType.CENTER_CROP)
. También puede hacer esto en XML para su ImageView con el atributo android:scaleType="centerCrop"
. Mente usted, esto redimensionará su imagen y mantendrá su relación de aspecto, pero cortará los lados.
Simplemente agrega el atributo anterior a tu ImageView en tu XML, (probablemente bajo tu layout_weight), y debería hacer lo que quieras.
Espero que esto ayude,
FuzzicalLogic
Intentarás por debajo del código …?
?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/examplegallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" /> <ImageView android:id="@+id/ImageView01" android:layout_width="fill_parent" android:layout_height="0dp" android:src="@drawable/ic_launcher" android:layout_weight="1"/> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/examplegallery1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> </LinearLayout>
Y si no funciona, intenta configurar tu altura de galería a algún dp, funcionará .. Gracias
El tamaño del ImageView se basa en el padre, lo que significa que comparte su ancho y altura. Además, la imagen se redimensiona para que coincida con la dimensión más limitante (ancho).
Parece que en la clase AddImgAdp, establece la altura y el ancho de ImageView a tamaños de píxeles específicos.
imgView.setLayoutParams(new Gallery.LayoutParams(110, 100)); //width = "110px", height="100px"
Yo personalmente pondría el diseño como un RelativeLayout, alinear la primera galería con la parte superior, la segunda galería con la parte inferior, y tienen el conjunto ImageView para alinear por encima de la segunda galería. Luego haz la imagen:
imgView.setLayoutParams( new Gallery.LayoutParams( Gallery.LayoutParams.FILL_PARENT, Gallery.LayoutParams.FILL_PARENT) );
Si establece ImageView en fill_parent con un LinearLayout, se llenará hasta la parte inferior de la pantalla y la segunda galería estará fuera de la pantalla.
También sepa que al rellenar todo el espacio lo más probable es distorsionar la imagen. Considere todas las opciones de cambio de tamaño: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
- Actualizar el proyecto Android de Eclipse a la siguiente versión
- Phonegap descargar archivo de url a sdcard