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.

Introduzca aquí la descripción de la imagen

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> 

Vinner,

El problema aquí es realmente dos cuestiones:

  1. El tamaño del ImageView se basa en el padre, lo que significa que comparte su ancho y altura.

  2. 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

  • Error en la sincronización del proyecto de Android Gradle
  • Comenzando con Android: Java o Python (SL4A)
  • ¿Depurar un proyecto Java basado en gradle en Android Studio?
  • Cómo importar una clase de módulo backend en un módulo de aplicación en android studio
  • Enviar puntuaciones a las tablas de clasificación de Google Play Games y mostrar nuevos rangos
  • Tipificación de un objeto de la clase padre al niño
  • Cómo agregar controles personalizados a MapFragment en Google Maps Android API v2?
  • import javax.xml.transform no se puede resolver
  • Requiere el proyecto Gradle desde otro directorio
  • Problema del adaptador simple, texto + imagen en hilandero. Java, Android
  • Cómo solicitar el permiso de ubicación en Android 6
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.