Guixe94
20/11/14, 09:56:23
Hola,
En mi app utilizo fragments. mi actividad principal esta compuesta por un relative layout arriba de 55dp de alto, en el cual muestro nombre de usuario, vidas, etc. Abajo tengo el layout de anuncios y lo demas es el container para los fragments (osea un framelayout de esos) el cual tiene de altura fill parent pero con margin top y botton de 55dp para que quepan los otros layouts (mirar imagen). Hasta aqui todo perfecto.
http://i.gyazo.com/3e1c3f323acf073dd12b3ebacf35d67b.png
El problema es cuando un usuario compra el producto "quitar ads" dentro de la app el layout anuncio pasa a ser visibilidad GONE. Entonces lo que hago es poner el margin bottom del container a 0 con el siguiente codigo:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)MyActivity.container. getLayoutParams();
params.setMargins(0, 130, 0, 0); //substitute parameters for left, top, right, bottom
MyActivity.container.setLayoutParams(params);
MyActivity.LLanuncio.setVisibility(View.GONE);
Si os fijais en el margin top le he puesto 130, aqui esta el problema, esas medidas me las coge en px y no en dp, por lo tanto no puedo ajustarlo para que se vea bien en todos los dispositivos.
Por ejemplo con 130 en un s3 se ve bien el layout de arriba, en un nexus 1 sobra mucho espacio por arriba y en mi note 3 se me queda corto y queda cortado..
Hay alguna forma de hacer lo mismo pero con dp?
Si no, alguien se le ocurre alguna otra forma de poder hacerlo?
Muchas gracias ;)!
En mi app utilizo fragments. mi actividad principal esta compuesta por un relative layout arriba de 55dp de alto, en el cual muestro nombre de usuario, vidas, etc. Abajo tengo el layout de anuncios y lo demas es el container para los fragments (osea un framelayout de esos) el cual tiene de altura fill parent pero con margin top y botton de 55dp para que quepan los otros layouts (mirar imagen). Hasta aqui todo perfecto.
http://i.gyazo.com/3e1c3f323acf073dd12b3ebacf35d67b.png
El problema es cuando un usuario compra el producto "quitar ads" dentro de la app el layout anuncio pasa a ser visibilidad GONE. Entonces lo que hago es poner el margin bottom del container a 0 con el siguiente codigo:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)MyActivity.container. getLayoutParams();
params.setMargins(0, 130, 0, 0); //substitute parameters for left, top, right, bottom
MyActivity.container.setLayoutParams(params);
MyActivity.LLanuncio.setVisibility(View.GONE);
Si os fijais en el margin top le he puesto 130, aqui esta el problema, esas medidas me las coge en px y no en dp, por lo tanto no puedo ajustarlo para que se vea bien en todos los dispositivos.
Por ejemplo con 130 en un s3 se ve bien el layout de arriba, en un nexus 1 sobra mucho espacio por arriba y en mi note 3 se me queda corto y queda cortado..
Hay alguna forma de hacer lo mismo pero con dp?
Si no, alguien se le ocurre alguna otra forma de poder hacerlo?
Muchas gracias ;)!