Modificar dimensiones de alto y ancho de un LinearLayout mediante código Java
Buenas programadores, muchas veces a la hora de configurar varias resoluciones, tenemos que adaptar los elementos conforme a si se usan tablets o dispositivos móviles de distintas pulgadas.
En este post, os traigo cómo modificar las dimensiones de un LinearLayout mediante código Java.
He estado mirando en varios foros y demás,y hay varias técnicas.Desde crear recursos xml en varias carpetas para adaptarlo en función de las dimensiones de los smartphones y tablets o mediante código Java.
En el último caso, es decir mediante código Java sólo me ha funcionado una forma: el siguiente ejemplo, consta de una actividad en la que cuenta con un linearLayout que ocupa toda la pantalla, y dentro tengo otro LinearLayout en el que he puesto una imágen como background, con una altura he insertado 200dp, de tal forma que sería asi:
Bien, a la hora de trabajar en varias resoluciones de pantalla, un tamaño como el de la imágen anterior, en un Nexus One de 3,7 pulgadas (480dp x800dp) quedaría bien con el efecto deseado, pero como digo, a la hora de usar una pantalla más grande, quedaría así(WVGA 5,1 pulgadas) quedaría así :
//MEDIMOS LA PANTALLA Display display = getWindowManager().getDefaultDisplay(); int ancho = display.getWidth(); int alto= display.getHeight(); //ASIGNAMOS MEDIANTE ID EL LAYOUT layout1 =(LinearLayout)findViewById(R.id.milayoutestirableporcodigo); //POR EJEMPLO LE VOY A PONER 1/3, PARA QUE EN CUALQUIER //DISPOSITIVO MIDA EL ALTO DE LA IMAGEN //1/3 DE LA PANTALLA layout1.getLayoutParams().height=alto*1/3; //ANCHO DE BANDA ARRIBA layout1.getLayoutParams().width=ancho;
Así conseguiremos que en cualquier dispositivo de cualquier dimension, esa imagen ocupe 1/3 del alto de la pantalla, aunque ahora vienen los problemas de pixelación de la imagen, que más adelante veremos cómo podemos solucionarlo.
Un saludo amigos! Espero que os haya ayudado a más de uno!
oOo mAkOnE oOo
Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo.
Gracias amigo saludos me sirvio mucho.
ResponderEliminarGracias a ti compañero ^^
EliminarMuchas gracias
ResponderEliminarLo mejor es que uses ConstraintLayout, esta diseñado para trabajar este tipo de cosas y en tiempo de diseño puedes definir cuanto quieres que te ocupe en tu pantalla, ya sea por medidas exactas o %
ResponderEliminarExcelente justo lo que buscaba.
ResponderEliminarchido no sabia con hacer el set para el layout sin tanto rollo gracias
ResponderEliminargörüntülüshow
ResponderEliminarücretli show
LUBU
شركة تسليك مجاري بالاحساء K05tVv3bN5
ResponderEliminar