Custom ListView donde todas las imágenes tienen el mismo tamaño

Quiero crear un ListView donde cada fila tiene una imagen rectangular y un poco de texto. Me gusta esto: introduzca la descripción de la imagen aquí

El problema que tengo es que alguna imagen de la altura es mayor que el ancho y luego el ListView ve así: introduzca la descripción de la imagen aquí

Este es mi código actual:

Diseño xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" android:id="@+id/resultItem"> <ImageView android:id="@+id/spicture" android:layout_width="97dp" android:layout_height="60dp" android:layout_marginBottom="3dp" android:layout_marginLeft="5dp" android:layout_marginRight="10dp" android:adjustViewBounds="true" android:layout_marginTop="3dp" > </ImageView> <TextView android:id="@+id/sname" style="@android:style/TextAppearance.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

Y el adaptador personalizado se ve así:

 public class ListViewAdapter extends BaseAdapter { private final Context mContext; private ArrayList<Integer> imageId; private ArrayList<String> textStr; private final LayoutInflater inflater; private static class ViewHolder { ImageView imgView; TextView txtView; } public ListViewAdapter(Context c) { mContext = c; inflater = LayoutInflater.from(mContext); } @Override public int getCount() { return imageId.size(); } @Override public Object getItem(int position) { return textStr.get(position); } @Override public long getItemId(int position) { return position; } /** * Rep per parametre un array amb els identificadors de les imatges i els * string dels textes a mostrar * * @param idImages * @param strText */ public void setData(ArrayList<String> strText, ArrayList<Integer> idImages) { imageId = idImages; textStr = strText; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate(R.layout.result_item, null); holder.imgView = (ImageView) convertView.findViewById(R.id.spicture); holder.txtView = (TextView) convertView.findViewById(R.id.sname); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromResource(mContext.getResources(), imageId.get(position), 50, 50); holder.imgView.setImageBitmap(bitmap); holder.txtView.setText(textStr.get(position)); holder.txtView.setGravity(Gravity.CENTER); return convertView; } } 

¿Cómo puedo tener todas las imágenes rectangulares con el mismo tamaño?

O recortar las imágenes antes de establecer en el listViewItem . O simplemente utiliza imágenes con la misma proporción.

Pero asumo que usted está buscando una solución más fácil. Sólo scaleType="centerCrop" añadir scaleType="centerCrop"

 <ImageView android:id="@+id/spicture" android:scaleType="centerCrop" android:layout_width="97dp" android:layout_height="60dp" android:layout_marginBottom="3dp" android:layout_marginLeft="5dp" android:layout_marginRight="10dp" android:adjustViewBounds="true" android:layout_marginTop="3dp" > 

Puede encontrar más información sobre los scaleTypes aquí: http://www.techrepublic.com/article/clear-up-ambiguity-about-android-image-view-scale-types-with-this-guide/

Nota fitXY la escalará para que se ajuste, pero la relación original se perderá.

Usa este android:scaleType="fitXY" para ImageView intenta debajo del código

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" android:id="@+id/resultItem"> <ImageView android:id="@+id/spicture" android:layout_width="97dp" android:layout_height="60dp" android:layout_marginBottom="3dp" android:layout_marginLeft="5dp" android:layout_marginRight="10dp" android:adjustViewBounds="true" android:layout_marginTop="3dp" > </ImageView> <TextView android:id="@+id/sname" style="@android:style/TextAppearance.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 
  • Extraño comportamiento de las imágenes en RecyclerView
  • Saltar ImageView mientras arrastra. Los valores de getX () y getY () saltan
  • Android - vista de la imagen dentro de los problemas del paginador de vista
  • Cómo dar forma hexagonal a ImageView
  • Android: java.lang.OutOfMemoryError:
  • Establecer la imagen del url a la vista de la imagen
  • Diferencia entre un ImageView y ImageButton que puede hacer clic
  • El texto de la etiqueta no se está actualizando en los niños de tableview en el trabajo de android.but de titanio en IOS
  • Establecer alfa en ImageView sin setAlpha
  • Cómo animar ImageView de centro de cultivo para llenar la pantalla y viceversa (estilo de facebook)?
  • ¿Cómo obtengo diferentes posiciones de clic en un solo ImageView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.