studio - imageview xamarin android
¿Cómo configuraLayoutParams() para un ImageView? (4)
Quiero establecer los LayoutParams
para un ImageView
pero no puedo encontrar la forma correcta de hacerlo.
Solo puedo encontrar documentación en la API para varios ViewGroups
, pero no en ImageView
. Sin embargo, el ImageView
parece tener esta funcionalidad.
Este código no funciona ...
myImageView.setLayoutParams(new ImageView.LayoutParams(30,30));
¿Cómo lo hago?
Necesita establecer los Parámetros de diseño del grupo de visualización en el que se encuentra ImageView. Por ejemplo, si su ImageView está dentro de un LinearLayout, entonces usted crea un
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
yourImageView.setLayoutParams(layoutParams);
Esto se debe a que es el padre de la Vista que necesita saber qué tamaño asignar a la Vista.
Si está cambiando el diseño de un ImageView existente, debería poder simplemente obtener los LayoutParams actuales, cambiar el ancho / alto y volver a configurarlo:
android.view.ViewGroup.LayoutParams layoutParams = myImageView.getLayoutParams();
layoutParams.width = 30;
layoutParams.height = 30;
myImageView.setLayoutParams(layoutParams);
No sé si ese es tu objetivo, pero si lo es, esta es probablemente la solución más fácil.
Un ImageView obtiene setLayoutParams de View que usa ViewGroup.LayoutParams. Si usa eso, se bloqueará en la mayoría de los casos, por lo que debería usar getLayoutParams () que se encuentra en View.class. Esto heredará la vista principal de ImageView y funcionará siempre. Puede confirmar esto aquí: ImageView extiende la vista
Suponiendo que tiene un ImageView definido como '' image_view '' y el ancho / alto int definido como ''thumb_size''
La mejor manera de hacer esto :
ViewGroup.LayoutParams iv_params_b = image_view.getLayoutParams();
iv_params_b.height = thumb_size;
iv_params_b.width = thumb_size;
image_view.setLayoutParams(iv_params_b);
Viejo hilo, pero ahora tenía el mismo problema. Si alguien se encuentra con esto, probablemente encontrará esta respuesta:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
yourImageView.setLayoutParams(layoutParams);
Esto funcionará solo si agrega ImageView como subView a LinearLayout. Si lo agrega a un RelativeLayout, deberá llamar:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(30, 30);
yourImageView.setLayoutParams(layoutParams);