sábado, 26 de febrero de 2011

Dejar la actividad a pantalla completa

Cuando necesité ésto, era porque tenía que llevar una aplicación al Galaxy 5, un modelo muy pequeño de teléfono, pero bueeeeno, trabajo es trabajo, y me molestaba en unos cuantos píxeles de espacio la barra superior del celular (donde se muestra la hora y el estado, es decir, la status bar).

El código sería:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

Y con eso, gané un espacio extra, por lo menos, para margen y quién sabe para qué le sirva a otra persona.

Reconocer el tamaño de la pantalla del teléfono

Para hacer modificaciones según el tamaño de la pantalla del teléfono/celular primero hay que saber cuál es el tamaño de la pantalla, y las líneas que me ayudan con ésto:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
heightPixels = metrics.heightPixels;
widthPixels = metrics.widthPixels;

Listo, yo, lo que hice, fue tomar el tamaño de ancho y alto en variables, y fui jugando con eso.

Espero que a alguien le sirva, a mí me ayudó mucho.

Arreglo de Views en Android

Cuando tuve la oportunidad de toparme por primera vez con un montón de TextView que cumplían con la misma función y debían ser llenados con data de distinto mmmm campo, dije, listo, hago un array de TextView y, peinado para atrás, arreglo esto, pero nop, no era tan así; la solución no es tan complicada, pero espero que a alguien le ayude.

1. Por una cosa de orden, llame en el layout a los TextView con nombres similares (tv_name_1, tv_name_2, etc), aunque ésto no influye mucho.

2. En mi archivo java (Activity.java, por decir algo), cree el siguiente objeto:

private Integer[] mTVNameIds = {
R.id.tv_name_1, R.id.tv_name_2,
R.id.tv_name_3, R.id.tv_name_4
};

3. Luego, en la fracción de código donde necesitaba llenar éstos views, hice lo siguiente:

TextView tv_name = null;
for(int i=0; i '<' mTVNameIds.length;i++)
{
tv_name = (TextView)findViewById(mTVNameIds[i]);
tv_name.setTextView("Nuestro contenido");
}

4. :)

Es algo simple, pero tal vez a más de alguien ayude.