Vamos a modificar la característica
Crea un nuevo proyecto Android al cual le vamos a cambiar para mostrar en el textView el
mensaje “hola Android”, para esto lo podemos realizar de la misma forma que hemos venido
imprimiendo valores en pantalla (un ID al TextView y modificando la referencia dentro del
activity).
Bueno para poder realizar cambios a nuestro modelo de Android lo que tenemos que realizar es
un cambio en el archivo [Link] que se guarda en el layout (archivo > res > layout> [Link])
Este archivo es el que contiene todos los elementos gráficos a cambiar dentro de nuestra activity y
aquí cambiamos la presentación gráfica de la misma.
Cuando entramos normalmente nos muestra la ventana siguiente:
Y para modificar puedes entrar a la vista XML presionando en la pestaña inferior izquierda, una vez
ahí dentro hay que tener cuidado con la sintaxis XML, recuerden que XML es algo parecido a HTML
en pocas palabras es un lenguaje orientado a las etiquetas que se tienen, cada etiqueta comienza
por “<” y termina “>” todo lo que está dentro de una etiqueta es un atributo, los atributos son los
que vamos a modificar para darle presentación a nuestras aplicaciones.
Vamos a modificar el último ejemplo para poder desplegar los factoriales con letras en negro y el
fondo en blanco.
Para esto vamos al [Link]
Añadimos el atributo android:background="#ffffff" a la etiqueta linearLayout esto antes de que
cierre la etiqueta.
Cambiamos el color de texto dentro de la etiqueta TextView y añadimos
android:textColor="#000000" a la etiqueta.
Cambiamos el tamaño de la letra a la aplicación cambiando al textView android:textSize="24sp"
Centramos el texto dentro del layout android:layout_gravity="center", para que surta
correctamente el efecto esperado es necesario definir la anchura del layout y esto lo logramos
mediante android:layout_width="wrap_content" y la salida es la siguiente:
Como se puede ver la salida se ajusta al contenido del texto, si se quiere cambiar esto de forma
que se abarque toda la pantalla hay que regresar el valor a fill_parent en
android:layout_width="fill_parent".
Ejercicio2
Ahora lo que vamos a realizar es un ejercicio donde se cambien las características del texto desde
el programa en Java y desde ahí se modifique el tipo de texto y tamaño de la fuente, para lograr
esto hay que tener una referencia al textView, de igual forma que en programas pasados tenemos
el atributo id y el nombre y modificamos con [Link]([Link](255, 255, 0, 0)); y con
[Link](40); (salida es la referencia al TextView.
El programa es el siguiente:
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class HolaAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link]);
TextView salida=(TextView)findViewById([Link]);
[Link]([Link](255, 255, 0, 0));
[Link](40);
[Link]("añadiendo nuevo texto con addView");
}
}
Y la salida debe de ser algo parecido a esto:
Ahora para añadir texto adicional una vez que ya se mandó a imprimir en pantalla necesitamos
hacer una asignación al elemento actual
TextView tv=new TextView(this);
Y a esta referencia le cambiamos los valores de color como sigue:
[Link]("este es nuevo texto por medio de addView");
[Link]([Link]);
el código completo de la actividad es el siguiente;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class HolaAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link]);
TextView salida=(TextView)findViewById([Link]);
[Link]([Link](255, 255, 0, 0));
[Link](40);
[Link]("añadiendo nuevo texto");
TextView tv=new TextView(this);
[Link]("este es nuevo texto por medio de addView");
[Link]([Link]);
LinearLayout ll=(LinearLayout)findViewById([Link]);
[Link](tv);
}
}
Y el resultado de la salida es algo como se muestra a continuación
Definiendo nuestro metodo print
Este código anterior tendríamos que repetirlo siempre cada que quisiéramos realizar una
impresión de nuevo texto, para simplificar esto vamos a realizar un método print(layout,String)
public void print(LinearLayout ll, String texto)
{
TextView tv=new TextView(this);
[Link](texto);
[Link](18);
[Link](tv);
}
Hacemos desde el programa una llamada con estos parámetros dentro de la función
onCreate
print(ll,"texto añadido desde el método print realizado por nosotros");
y el resultado es algo como lo que se muestra a continuación
Extendiendo la pantalla con ScrollView
Si vamos a escribir mucho texto en una aplicación sí se sobrepasa el tamaño de la pantalla no se ve
el texto que esta fuera de la pantalla, para poder corregir esto se usa el ScrollView. Se inserta el
layout dentro de este componente, en el [Link] se encierra el componente linearLayout dentro
de un ScrollView.
Vamos a crear un programa con la tabla de seno con los primeros 100 elementos y un scroll hacia
abajo.
El archivo en [Link] queda de la siguiente manera:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="[Link]
android:background="#ffffff"
android:layout_height="wrap_content"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
>
<LinearLayout
android:id="@+id/miLinearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/textView"
android:textColor="#000000"
android:textSize="12sp"
android:layout_gravity="center"
/>
</LinearLayout>
</ScrollView>
Y el código del activity queda de la siguiente forma:
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class HolaAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link]);
View v=(View) findViewById([Link]);
TextView salida=(TextView)v;
for(double x=0; x<100; x++)
{
double y=[Link](x);
[Link]("sin ("+x+") = "+y+"\n");
}
}
}