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.
- ¿Cómo crear un RelativeLayout programáticamente con dos botones uno encima del otro?
- ImageView no se extiende (Android)?
- ¿Cómo puedo centrar dos TextViews verticalmente dentro de un Layout
- RelativeLayout no maneja "toLeftOf" y / o toRightOf correctamente
- Problemas de diseño de Android
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);
- Uso de RelativeLayout dentro de ScrollView no se produce en desplazamiento
- Usando layout_alignBaseline y layout_alignBottom en RelativeLayout juntos
- RelativeLayout no muestra todos los botones
- Cómo pasar de una actividad a otra Actividad en Android
- Repita la imagen con ImageView en RelativeLayout
- ¿Cómo mostraría una vista como una superposición de otra?
- Cómo centrar una vista usando RelativeLayout?
- ¿Cómo centrar dos vistas dentro de una disposición relativa?
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);
- "La prueba no se ejecutó hasta la finalización." Motivo: 'La instrumentación ejecutada falló debido a' El proceso se estrelló. '' Mientras se ejecutan varios testcases
- Uso de lenguajes de programación sobre diferentes sistemas operativos