martes, 19 de diciembre de 2017

05 Aplicacion. Amigo Invisible

Aplicacion  para sortear las personas que participan en los regalos mediante #amigoInvisible.
Podeis descargarla aqui.
Os pongo video demostrativo.





martes, 14 de noviembre de 2017

04 Aplicacion. MiCuenta

Aplicacion con la que podras llevar el calculo aproximado de lo que llevas consumido y gastado en un bar cualquiera.
 https://play.google.com/store/apps/details?id=ticoticotaa.es.micuenta
Espero os sea util, gracias.


miércoles, 1 de noviembre de 2017

08 Android. Generando archivo APK

Generando archivo de instalacion de nuestra aplicacion para el movil android.


07 Android. Esquinas redondeadas en botones

Se añade codigo para poner las variables a 0 de la aplicacion MarcadorBaloncesto del video anterior, tambien se ve como redondear las esquinas de los botones y como añadir colores al archivo colors.xml.


esquinaredondeada
<?xml version="1.0" encoding="utf-8"?><shape xmlns:
android="http://schemas.android.com/apk/res/android"   
 android:shape="rectangle">
    <solid android:color="#ffffff"/>
    <stroke android:width="3dp"           
 android:color="#ff000000"/>
    <padding android:left="1dp"           
 android:top="1dp"            android:right="1dp"        
    android:bottom="1dp"/>
    <corners android:radius="30px"/>
</shape>
colors

<?xml version="1.0" encoding="utf-8"?><resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="colorAmarillo">#ffe940</color>
    <color name="colorVerde">#40ff53</color>
</resources>
styles

<resources>

    <!-- Base application theme. -->   
 <style name="AppTheme" parent="Theme.AppCompat.Light.
DarkActionBar">
        <!-- Customize your theme here. -->  
      <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">
@color/colorPrimaryDark
</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
<style name="boton">
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:padding">10dp</item>
    <item name="android:layout_margin">10dp</item>
    <item name="android:background">@drawable/
esquinaredondeada</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:gravity">center</item>
    <item name="android:textColor">@color/colorAccent</item>

</style>
    <style name="texto">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:textSize">24sp</item>
        <item name="android:textColor">@color/colorAmarillo
</item>
        <item name="android:gravity">center</item>

    </style>
    <style name="titulo">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:textSize">32sp</item>
        <item name="android:textColor">@color/colorVerde</item>
        <item name="android:gravity">center</item>

    </style>
</resources>
activity_main

<?xml version="1.0" encoding="utf-8"?><android.support.
constraint.ConstraintLayout xmlns:android=
"http://schemas.android.com/apk/res/android"  
  xmlns:app="http://schemas.android.com/apk/res-auto"   
 xmlns:tools="http://schemas.android.com/tools"   
 android:layout_width="match_parent"  
  android:layout_height="match_parent"  
  tools:context="ticoticotaa.es.marcadorbaloncesto.
MainActivity">

    <LinearLayout        android:layout_width="match_parent"   
     android:layout_height="match_parent"     
   android:orientation="vertical">

        <TextView            android:id="@+id/tvTitulo"   
         style="@style/titulo" />

        <LinearLayout          
  android:layout_width="match_parent"      
      android:layout_height="wrap_content"       
     android:gravity="center"           
 android:orientation="horizontal">

            <LinearLayout               
 android:layout_width="wrap_content"        
        android:layout_height="wrap_content"         
       android:orientation="vertical">

                <TextView                
    android:id="@+id/tvMarcadorLocal"          
          style="@style/texto" />

                <Button                  
  android:id="@+id/btnLocal2"                 
   style="@style/boton"                  
  android:text="@string/dosPuntos"/>

                <Button                 
   android:id="@+id/btnLocal3"             
       style="@style/boton"                
    android:text="@string/tresPuntos"                    />

                <Button               
     android:id="@+id/btnLocal1"      
              style="@style/boton"      
              android:text="@string/unPunto"/>
            </LinearLayout>

            <LinearLayout             
   android:layout_width="wrap_content"   
             android:layout_height="wrap_content"             
   android:orientation="vertical">

                <TextView                 
   android:id="@+id/tvMarcadorVisitante"    
                style="@style/texto" />

                <Button              
      android:id="@+id/btnVisitante2"            
        style="@style/boton"             
       android:text="@string/dosPuntos"/>

                <Button                
    android:id="@+id/btnVisitante3"     
               style="@style/boton"               
     android:text="@string/tresPuntos"/>

                <Button                 
   android:id="@+id/btnVisitante1"                 
   style="@style/boton"              
      android:text="@string/unPunto"/>
            </LinearLayout>
        </LinearLayout>

        <Button            android:id="@+id/btnReset"        
    style="@style/boton"            android:text="@string/reset"/>
    </LinearLayout>

</android.support.constraint.ConstraintLayout>
MainActivity

package ticoticotaa.es.marcadorbaloncesto;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity
 implements View.OnClickListener {
    public TextView marcadorLocal, marcadorVisitante,titulo;
    public Button btn1Local,btn2Local,btn3Local,
btn1Visitante,btn2Visitante,btn3Visitante,btnReset;
    public int puntuacionLocal,puntuacionVisitante,puntos;
    @Override    protected void onCreate(Bundle
 savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        titulo=(TextView)findViewById(R.id.tvTitulo);
        titulo.setText("Marcador Basket");
        marcadorLocal=(TextView)findViewById
(R.id.tvMarcadorLocal);
        marcadorVisitante=(TextView)findViewById
(R.id.tvMarcadorVisitante);
        marcadorLocal.setText("Local: "+0);
        marcadorVisitante.setText("Visitante: "+0);
        btn1Local=(Button)findViewById(R.id.btnLocal1);
        btn2Local=(Button)findViewById(R.id.btnLocal2);
        btn3Local=(Button)findViewById(R.id.btnLocal3);
        btn1Visitante=(Button)findViewById
(R.id.btnVisitante1);
        btn2Visitante=(Button)findViewById
(R.id.btnVisitante2);
        btn3Visitante=(Button)findViewById
(R.id.btnVisitante3);
        btnReset=(Button)findViewById(R.id.btnReset);
        btn1Local.setOnClickListener(this);
        btn2Local.setOnClickListener(this);
        btn3Local.setOnClickListener(this);
        btn1Visitante.setOnClickListener(this);
        btn2Visitante.setOnClickListener(this);
        btn3Visitante.setOnClickListener(this);
        btnReset.setOnClickListener(this);
    }

    @Override    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btnLocal1:
                incrementa(1,1);
                break;
            case R.id.btnLocal2:
                incrementa(1,2);
                break;
            case R.id.btnLocal3:
                incrementa(1,3);
                break;
            case R.id.btnVisitante1:
                incrementa(2,1);
                break;
            case R.id.btnVisitante2:
                incrementa(2,2);
                break;
            case R.id.btnVisitante3:
                incrementa(2,3);
                break;
            case R.id.btnReset:
                borra();
                break;
        }
    }
    public void incrementa(int equipo, int puntos){
        if (equipo==1){
            puntuacionLocal=puntuacionLocal+puntos;
            marcadorLocal.setText("Local: "+puntuacionLocal);
        }else{
            puntuacionVisitante=puntuacionVisitante+puntos;
            marcadorVisitante.setText("Visitante: "
+puntuacionVisitante);
        }
    }
    public void borra(){
        marcadorLocal.setText("Local: "+0);
        marcadorVisitante.setText("Visitante: "+0);
        puntuacionLocal=0;
        puntuacionVisitante=0;
    }
}




domingo, 29 de octubre de 2017

06 Android. Marcador Basket

Creamos una aplicacion en la que iremos reflejando el marcador del equipo local y visitante de un partido de baloncesto.


En el codigo podras ver que se me paso poner las variables de los marcadores a cero cuando se pulsa el boton de Reset, en el metodo borra debes añadir puntuacionLocal=0 y puntuacionVisitante=0.
En unos dias lanzare un video mejorando la estetica de esta aplicacion, en ese video añadire el codigo de borrado de variables.

MainActivity
package ticoticotaa.es.marcadorbaloncesto;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity 
implements View.OnClickListener {
    public TextView marcadorLocal, marcadorVisitante,titulo;
    public Button btn1Local,btn2Local,btn3Local,
btn1Visitante,btn2Visitante,btn3Visitante,btnReset;
    public int puntuacionLocal,puntuacionVisitante,puntos;
    @Override    protected void onCreate(Bundle 
savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        titulo=(TextView)findViewById(R.id.tvTitulo);
        titulo.setText("Marcador Basket");
        marcadorLocal=(TextView)findViewById
(R.id.tvMarcadorLocal);
        marcadorVisitante=(TextView)findViewById
(R.id.tvMarcadorVisitante);
        marcadorLocal.setText("Local: "+0);
        marcadorVisitante.setText("Visitante: "+0);
        btn1Local=(Button)findViewById(R.id.btnLocal1);
        btn2Local=(Button)findViewById(R.id.btnLocal2);
        btn3Local=(Button)findViewById(R.id.btnLocal3);
        btn1Visitante=(Button)findViewById(R.id.btnVisitante1);
        btn2Visitante=(Button)findViewById(R.id.btnVisitante2);
        btn3Visitante=(Button)findViewById(R.id.btnVisitante3);
        btnReset=(Button)findViewById(R.id.btnReset);
        btn1Local.setOnClickListener(this);
        btn2Local.setOnClickListener(this);
        btn3Local.setOnClickListener(this);
        btn1Visitante.setOnClickListener(this);
        btn2Visitante.setOnClickListener(this);
        btn3Visitante.setOnClickListener(this);
        btnReset.setOnClickListener(this);
    }

    @Override    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btnLocal1:
                incrementa(1,1);
                break;
            case R.id.btnLocal2:
                incrementa(1,2);
                break;
            case R.id.btnLocal3:
                incrementa(1,3);
                break;
            case R.id.btnVisitante1:
                incrementa(2,1);
                break;
            case R.id.btnVisitante2:
                incrementa(2,2);
                break;
            case R.id.btnVisitante3:
                incrementa(2,3);
                break;
            case R.id.btnReset:
                borra();
                break;
        }
    }
    public void incrementa(int equipo, int puntos){
        if (equipo==1){
            puntuacionLocal=puntuacionLocal+puntos;
            marcadorLocal.setText("Local: "+puntuacionLocal);
        }else{
            puntuacionVisitante=puntuacionVisitante+puntos;
            marcadorVisitante.setText("Visitante: "
+puntuacionVisitante);
        }
    }
    public void borra(){
        marcadorLocal.setText("Local: "+0);
        marcadorVisitante.setText("Visitante: "+0);
    }
}

Activity_main xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout
 xmlns:android="http://schemas.android.com/apk/res/android"  
  xmlns:app="http://schemas.android.com/apk/res-auto"  
  xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"    android:layout_height="match_parent"   
 tools:context="ticoticotaa.es.marcadorbaloncesto.MainActivity">

    <LinearLayout      
  android:layout_width="match_parent"    
    android:layout_height="match_parent"     
   android:orientation="vertical">

        <TextView            android:id="@+id/tvTitulo"         
   style="@style/texto" />

        <LinearLayout           
 android:layout_width="match_parent"      
      android:layout_height="wrap_content"     
       android:gravity="center"       
     android:orientation="horizontal">

            <LinearLayout             
   android:layout_width="wrap_content"              
  android:layout_height="wrap_content"              
  android:orientation="vertical">

                <TextView               
     android:id="@+id/tvMarcadorLocal"          
          style="@style/texto" />

                <Button                 
   android:id="@+id/btnLocal2"                
    style="@style/boton"              
      android:text="@string/dosPuntos"/>

                <Button                 
   android:id="@+id/btnLocal3"             
       style="@style/boton"                
    android:text="@string/tresPuntos"                    />

                <Button                 
   android:id="@+id/btnLocal1"            
        style="@style/boton"              
      android:text="@string/unPunto"/>
            </LinearLayout>

            <LinearLayout             
   android:layout_width="wrap_content"            
    android:layout_height="wrap_content"          
      android:orientation="vertical">

                <TextView                
    android:id="@+id/tvMarcadorVisitante"          
          style="@style/texto" />

                <Button              
      android:id="@+id/btnVisitante2"                
    style="@style/boton"                 
   android:text="@string/dosPuntos"/>

                <Button                 
   android:id="@+id/btnVisitante3"         
           style="@style/boton"             
       android:text="@string/tresPuntos"/>

                <Button            
        android:id="@+id/btnVisitante1"       
             style="@style/boton"            
        android:text="@string/unPunto"/>
            </LinearLayout>
        </LinearLayout>

        <Button       
     android:id="@+id/btnReset"        
    style="@style/boton"       
     android:text="@string/reset"/>
    </LinearLayout>

</android.support.constraint.ConstraintLayout>
Styles

<resources>

    <!-- Base application theme. -->   
 <style name="AppTheme"
 parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->  
      <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">
@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
<style name="boton">
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:padding">10dp</item>
    <item name="android:layout_margin">10dp</item>
    <item name="android:background">
@color/colorPrimaryDark</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:gravity">center</item>
    <item name="android:textColor">@color/colorAccent</item>
</style>
    <style name="texto">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:textSize">24sp</item>
        <item name="android:textColor">@color/colorAccent</item>
        <item name="android:gravity">center</item>
        <item name="android:textColor">@color/colorAccent</item>
    </style>
</resources>

sábado, 23 de septiembre de 2017

03 Aplicacion. AmpaApp

Aplicacion creada para el AMPA del Ceip Valdes Leal (diseño Raul Lopez, programacion Jose Ojeda).
Con ella, el usuario tiene acceso total a todos los canales informativos del AMPA, incluso recibira
notificaciones en tiempo real, con lo que no tendra que usar los molestos (a veces) grupos de Whatsapp.
Podeis ver como funciona en el video que aparece bajo estas lineas.
Esta aplicacion se puede adaptar perfectamente a cualquier necesidad, en caso de estar interesados
pueden contactar con nosotros a traves de cualquiera de nuestros canales.
Podeis descargar la aplicacion AQUI.

 



martes, 15 de agosto de 2017

02 Aplicacion. Usuario Clave

Aplicacion creada para almacenar de forma segura en nuestro movil los usuarios y claves que solemos usar en distintos ambitos.
Los datos se guardan unicamente en nuestro movil con un codigo de encriptacion.
Dispone de un boton para generar claves.


Podeis descargar la aplicacion en este enlace.

01 Aplicacion. LLamadas Emergencias.

Con esta aplicacion se podran realizar llamadas de emergencias cuando sea necesario, facilitando estas llamadas a personas mayores o niños ante una urgencia.
Se pueden configurar los numeros de telefonos de urgencias del pais del usuario, tambien se puede añadir el telefono de un familiar o amigo cercano, al que le llegara un sms indicando que el usuario esta realizando una llamada de emergencia junto con su ubicacion si tiene activado el GPS.


Podeis descargar la aplicacion en este enlace.

sábado, 25 de marzo de 2017

10. Juego del topo con App Inventor

En este video vemos como crear un juego, en este caso creamos el juego del topo, bastante conocido y que nos sirve para ver como dar movimiento a la imagen cambiando su posicion al azar, veremos tambien condicionales, funciones o metodos, variables, etc.
Podeis ver el video aqui:



Os pongo tambien imagenes del codigo y diseño de las pantallas.







viernes, 10 de marzo de 2017

Guia Contable, aplicacion

En este video podeis ver la aplicacion que he subido a Google Play para que podais tener una guia contable en el movil o tablet, para facilitar la consulta a los temas expuestos y a videos de ejemplos.
Espero os sea util, gracias.


lunes, 13 de febrero de 2017

Tabla de multiplicar App

Aplicacion realizada para que los niños aprendan y practiquen con las tablas de multiplicar. Tiene una pantalla en la que muestra la tabla que seleccionemos y otra pantalla donde hay que introducir el resultado que verificara si es cierto o no al pulsar el boton comprobar. Podeis obtener la aplicacion aqui.
Podeis ver un video de muestra aqui.







martes, 7 de febrero de 2017

09. Numeros aleatorios con App Inventor

En este video se muestra como generar numeros aleatorios como ejemplo se realiza una aplicacion que genera numeros para la loteria primitiva, usando para ello numeros al azar, bucles, condicionales y funciones o metodos generados por nosotros.


sábado, 28 de enero de 2017

08. Mover objeto en pantalla android usando acelerometro

En este video vemos como programar una aplicacion Android que haga uso del acelerometro del movil para mover una pelota por la pantalla del dispositivo, todo realizado con AppInventor.


07. Cambio de pantallas y paso de datos con AppInventor.

En el video se muestra como abrir y cerrar pantallas pasando datos de una a otra con AppInventor para Android.


domingo, 22 de enero de 2017

06. Aplicacion calculadora para Android con AppInventor

En este video vemos como realizar una aplicacion calculadora para
Android con AppInventor, el primer video explica como preparar
la parte grafica y el siguiente video explica el codigo para realizar
la aplicacion.








domingo, 8 de enero de 2017

05. Variables con AppInventor

En este video se muestra como manejar variables con AppInventor, para ello programamos un ejemplo de aplicacion android en la que se suman dos valores introducidos por el usuario en los cuadros de textos.




miércoles, 4 de enero de 2017

04. Formato de textos con AppInventor

En el siguiente video podeis ver como dar formato a los textos tanto desde diseño como desde codigo con AppInventor.
Para ello insertaremos en la pantalla una etiqueta, un textbox y dos botones con los que haremos que se ejecute codigo para cambiar fondo y tamaño de la etiqueta y el textbox.
En el codigo utilizaremos una expresion condicional "IF" para ejecutar un codigo u otro dependiendo del resultado de la comparacion que le indicamos.








03. Agregar captura camara a Aplicacion dibujo con AppInventor

En este video se muestra como capturar la imagen de la camara del movil y ponerla en el Canvas para poder pintar sobre ella.
Para ello utilizamos la aplicacion android que comenzamos en el video anterior y le insertamos el componente no visible Camera de AppInventor.

 

En las imagenes siguientes podeis ver tanto el diseño de la pantalla como el codigo de bloques necesario para esta aplicacion.