Atom Blog

Como habilitar los eventos de click o Click Listener de un Button, TextView o EditText en Android



En nuestras aplicaciones moviles es muy comun utilizar botones o campos de texto que permiten mostrar e ingresar datos para hacer mas interactiva la aplicacion.

Los eventos desencadenados al presionar o hacer click sobre alguno de estos componentes son manejados desde la logica de la aplicacion, es decir desde los archivos .java.

A continuacion mostraremos un boton, un editText y un textView con sus respectivos eventos click o Click Listeners.

Primero definimos los componentes de la aplicacion en la interfaz de usuario, es decir en los archivos .xml. En este caso definiremos el archivo prueba.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@color/white">

<Button
    android:id="@+id/boton_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Boton de prueba"
    android:textSize="24sp"
/>

<EditText
    android:id="@+id/edit_text_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="EditText de prueba"
    android:textSize="24sp"
/>

<TextView
    android:id="@+id/text_view_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView de prueba"
    android:textSize="24sp"
/>

</LinearLayout>

Ahora en la clase que controladora de esta interfaz colocaremos el siguiente codigo dentro del evento onCreate():

protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prueba);

       Button nameButton = (Button) findViewById(R.id.boton_prueba);
       TextView nameTextView = (TextView) findViewById(R.id.text_view_prueba);
       EditText nameEditText = (EditText) findViewById(R.id.edit_text_prueba);

       nameButton =.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
       });

       nameTextView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
        });

        nameEditText.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
        });

}


Listo!! ahora podremos ejecutar cualquier codigo al presionar algun componente sobre la interfaz de usuario de Android.

Como abrir una nueva ventana o clase (Activity) in Java Android


Cuando estamos empezando a programar aplicaciones moviles para Android necesitamos tener algunos conocimientos basicos de la programacion orientada a objetos y entender el funcionamiento de las clases .java (la logica de la aplicacion) y los archivos .xml (la interfaz de usuario).


En este post explicaremos la manera de abrir una nueva ventana, clase o Activity en Android. La manera de hacerlo en muy sencilla como se muestra en las siguientes lineas:

Definiremos un nueva Intent y a continuacion lo iniciaremos:

Intent intent = new Intent(Splash.this,Tutorial.class);
startActivity(intent);


donde:

Splash es la clase .java actual.
Tutorial es la clase .java que se quiere abrir.

Como Utilizar Imagenes en Matlab


En este nuevo post veremos algunas cosas muy utiles al momento que necesitemos trabajar con imagenes en matlab, aprenderemos como leer imagenes desde la computadora, como mostrarlas en un axes y como escribirlas (guardar) en la computadora.

Una imagen en blanco/negro en matlab es representada por una matriz de dimensiones nxm, donde "n" representan las filas y "m" las columnas.
Para representar una imagen a color en matlab se necesitaran 3 matrices representando los colores basicos.

Para leer una imagen desde la computadora aplicamos la siguiente sentencia:

ruta = 'C:\Users\Rafa\Desktop\imagen1.jpg';
A=imread(ruta);

La variable "A" guardara la matriz de datos de la imagen. Para poder representar la imagen leida en una ventana utilizamos la siguiente sentencia:

imshow(A);

Para obtener el tamano de la imagen utilizamos:

size(A);

lo que representa que existen 3 matrices para cada uno de los colores basicos y el tamamo 375x600.

Podemos aplicar la sentencia siguiente para obtener informacion detallada de la imagen leida.

whos A;

Se puede observar algunos parametros obtenidos de la imagen leida como su nombre, su tamano, los bytes utilizados para representar la matriz, asi como su clase (clase de imagen) que en este caso es uint8 y sus atributos.

Clases de Imagenes:

char: Para caracteres (2 bytes por elemento).
double: Doble precision, numeros de punto flotante en un rango de -10^308 hasta 10^308 (8 bytes por elemento).
int8: Enteros de 8 bits en el rango [-128, 127] (1 byte por elemento).
int16: Enteros de 16 bits en el rango [-32768, 32767] (2 byte por elemento).
int32: Enteros de 32 bits en el rango [-147483648,2147483647] (4 byte por elemento).
logical: Representada por valores de 0 y 1 (1 byte por elemento).
single: Numero de punto flotante de precision simple, con valores entre [-10^38, 10^38] (4 bytes por elemento).
uint8: Enteros de 8 bits en el rango [0, 255] (1 byte por elemento).
uint16: Enteros de 16 bits en el rango [0, 65535] (2 byte por elemento).
uint32: Enteros de 32 bits en el rango [0, 4294967295] (4 byte por elemento).

Para guardar una imagen en la computadora utilizaremos las siguientes sentencias:

imwrite(f, 'nombre_imagen.jpeg');

Ademas se puede utilizar la sentencia siguiente para definir la calidad de la imagen que vamos a guardar, el valor de "q" varian de 0 a 100 representando la calidad respectivamente.

imwrite(A, 'nombre_imagen.jpeg','quality', q);

Para poder recuperar informacion correspondiente a la imagen que acabamos de guardar aplicamos lo siguiente:

imfinfo nombre_imagen.jpeg;



Existen algunos comandos utilizados para tranformar entre las distintas clases de imagenes, como se  muestra a continuacion:

Nuestra imagen original guardada en A es:
Al aplicar:

 im2bw(A)

se obtiene:



Se tiene otros tipos de transformacion como:

im2uint8(A);

im2uint16(A);

im2double(A);







Como Hacer una Animacion de Movimiento de Texto En HTML



En este post mostraremos como realizar una animacion sencilla que refleje los distintos tipos de movimientos que se puede hacer con los textos.

Crearemos un contenedor en el cual escribiremos 7 nombres que representan a: Java, Matlab, HTML, Threads, GUI, Button, JSF, cada nombre tendra un color y un efecto de movimiento diferente.

Para este ejemplo haremos todo desde HTML y JavaScript, no utilizaremos CSS.

Haremos uso del script "Kinetic", el cual nos brindara un ambiente de javaScript, creando stages, layers y utilizaremos algunos de sus metodos para lograr los efectos que se obtuvieron en el ejemplo:

El ejemplo se desarrollara dentro de las etiquetas <body> y </body> y seguira de la siguiente manera:

Para agregar el script Kinetic aplicamos la siguiente sentencia:

<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.7.4.min.js"></script>

Una vez que se importa el script, se continua programando en JavaScript dentro de las sentencias siguientes:

<script>
       .........codigo en javascript.........
</script>

E incluimos el siguiente codigo que permite agregar un contenedor donde incluiremos nuestros textos.

//Creamos una nueva etapa llamada "stage" 
 var stage = new Kinetic.Stage({
     container: 'container', 
     width: 600,
     height: 340 
 });

//Creamos nueva capa sobre la que colocaremos los easings 
 var layer = new Kinetic.Layer();

Creamos los textos al los que les pondremos los efectos de movimiento.
//Creamos la lista que se mostrara con su respectivo nombre, //color y efecto (easings).  
var easings = [ {
easing: 'ElasticEaseOut', name:'Java', color:'blue'}, 
   {easing: 'BackEaseIn', name:'Matlab', color:'red'}, 
   {easing: 'EaseOut', name:'HTML', color:'green'}, 
   {easing: 'EaseInOut', name:'Threads', color:'blue'}, 
   {easing: 'BackEaseIn', name:'GUI', color:'yellow'}, 
   {easing: 'EslasticEaseIn', name:'Button', color:'red'}, 
   {easing: 'BackEaseInOut', name:'JSF', color:'orange'} 
 ];  

Como se puede observar en las sentencias anteriores los efectos vienen daros por: 'BackEaseIn, EaseOut, EaseInOut, etc. Existen otros efectos aparte de estos.

Nuestro ejemplo se veria de la siguiente manera:

Para descargar el proyecto completo seguir los siguientes enlaces: