Android ImageView escalado confict

Estoy creando ImageView en el código:

 ImageView vlogo = new ImageView(v.getContext()); RelativeLayout.LayoutParams vlogoParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); vlogoParams.addRule(RelativeLayout.ALIGN_TOP,tv_visitor.getId()); vlogoParams.addRule(RelativeLayout.ALIGN_LEFT, tv_visitor.getId()); vlogoParams.addRule(RelativeLayout.ALIGN_BOTTOM, tv_visitor.getId()); vlogo.setLayoutParams(vlogoParams); vlogo.setImageResource(R.drawable.star); rl.addView(vlogo); 

La imagen se "escala" al alinearla a TOP y BOTTOM de la vista de tv_visitor previamente creada (que se ha agregado al diseño relativo). Pero supongo que no es layedout todavía (?). .requestLayout justo antes de que este código no cambie nada. Imagen

Al hacer esto, estoy configurando la altura de ImageView a la altura de la vista de tv_visitor. Que está bien. Sin embargo, la anchura parece permanecer original.

Y aquí viene el problema. El ancho permanece sin escalar. La manera que hago eso está haciendo .setAdjustViewBounds (verdadero); no funciona. ¿Cómo debo proceder entonces?

Como se solicita en los comentarios proporciono más información:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/news_scrollView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff000000" android:scrollbars="none"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/fragment_news2"> <View android:id="@+id/anchor_n" android:layout_width="0dp" android:layout_height="0dp" android:background="#ffbb00" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" /> </RelativeLayout> </ScrollView> 

La vista se pasa como parámetro y el diseño se obtiene mediante:

 RelativeLayout rl = (RelativeLayout) v.findViewById(R.id.fragment_news2); 

El problema se debe a la ampliación de Imageview , ya que por defecto imageview está usando ImageView.ScaleType.FIT_CENTER . Según la documentación FIT_CENTER realiza la siguiente operación:

Calcule una escala que mantenga la relación de aspecto src original, pero también asegurará que src se ajuste totalmente dentro de dst. Al menos un eje (X o Y) encajará exactamente. El resultado está centrado dentro de dst .

Puesto que la imagen se redimensiona y se centra, usted está viendo espacios adicionales en ambos lados izquierdo y derecho. Para evitar que ScaleType se fije a ImageView.ScaleType.FIT_END que a su vez alinea el resultado a la derecha resolverá el problema.

 vlogo.setScaleType(ImageView.ScaleType.FIT_END); 
  • Cómo hacer una barra de progreso mostrar en la parte superior de un botón en android
  • OnTouch dando extraños puntos de contacto Android
  • Android: 2 diseño relativo dividido en la mitad de la pantalla
  • Cómo establecer mediante programación el atributo layout_align_parent_right de un botón en Disposición relativa?
  • Z-index en Disposición relativa
  • ¿Cómo puedo hacer que `View` llene un` RelativeLayout`?
  • diseño con botones en un círculo?
  • RelativaLayout TextView superposición
  • Android Error: Debe proporcionar el atributo layout_width
  • Cómo establecer la misma altura en RelativeLayout?
  • ¿Cómo mostrar / ocultar vistas agrupadas en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.