curso android studio.pdf

Upload: javucho26

Post on 07-Jul-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Curso Android Studio.pdf

    1/258

    Manual Básico

    Android Studio

    = - · -- ·-- ·- e;

    � =

    � = . _

    - 1 -

  • 8/18/2019 Curso Android Studio.pdf

    2/258

    ÍNDICE

    1 -Instalación de las herramientas necesarias paraprogramar para Android Studio

    2 -Pasos para crear el primer proyecto Android Studio3 -Capturar el clic de un botón4 -Controles RadioGroup y RadioButton5 -Control CheckBox6 - Control Spinner7 -Control ListView (con una lista de String)8 - Control ImageButton9 -Notificaciones sencillas mediante la clase Toast10 -Control EditText11 -Lanzar un segundo "Activity"12 -Lanzar un segundo "Activity" y pasar parámetros13 -Almacenamiento de datos mediante la clase SharedPreferences14 -Almacenamiento de datos en un archivo de texto en la memoria interna

    15 -Almacenamiento de datos en un archivo de textolocalizado en una tarjeta SD16 -Almacenamiento en una base de datos SQLite17 -Instalación del programa Android en un dispositivo real18 -Layout (LinearLayout)19 -Layout (TableLayout)20 -Layout (FrameLayout)21 -Layout (ScrollView y LinearLayout)

    22 - Icono de la aplicación23 -Reproducción de audio (archivo contenido en la aplicación)24 -Reproducción, pausa, continuación y detención de un archivo de audio.25 -Reproducción de audio (arch vo contenido en una ta eta SD)26 -Reproducción de audio ( archivo localizado en internet)27 -Reproducción de audio utilizando el reproductor

    propio de Android (vía Intent)28 -Grabación de audio mediante el grabador

    provisto por Android (via Intent)29 Captura de audio mediante la clase MediaRecorder

    - 2 -

  • 8/18/2019 Curso Android Studio.pdf

    3/258

    30 - Dibujar: graficar un píxel31 - Dibujar: pintar fondo y dibujar líneas32 - Dibujar: rectángulos33 - Dibujar: círculos34 - Dibujar: óvalos35 - Dibujar: texto36 - Dibujar: texto con fuentes externas37 - Dibujar: texto sobre un camino38 - Dibujar: una imagen

    39 - Evento touch: dibujar un círculo40 - Evento touch: juego del buscaminas41 - Archivo strings.xml42 - Internacionalización y archivo strings.xml43 - Localización y archivo strings.xml44 - Componente ActionBar (Básica)45 - Componente ActionBar (Botones de acción)46 - Componente ActionBar (Ocultarlo y mostrarlo)

    - 3 -

  • 8/18/2019 Curso Android Studio.pdf

    4/258

    1 - Instalación de las herramientas necesariaspara programar para Android Studio

    Descarga de herramientas necesarios paraprogramar para Android con el Android Studio

    1 - Primero debemos instalar el compilador de Java y la máquina virtual. Estasherramientas las podemos descargar de:Java SE Develo ment Kit (JDK).

    2 - El segundo paso es la descarga del Android Studio que contiene todo lo necesariopara comenzar el desarrollo de aplicaciones en Android , lo hacemos del sitio Android SDK.

    Ahora procedemos a su instalación en el equipo ejecutando el archivo que acabamos dedescargar

    l =I

    Welcom t h Adr i Stup

    Se p will guide yo ro h e ins lla on of An roidS i .

    It i rec mmende t ou o e l o e p li on bef e t r Se i iT m ke i p i le t pd trelevant le o t h vi e ot o rc m ter

    Cli Next t co nue

    e t> ' n el

    Dejamos por defecto para que instale el Android Studio, el Android SDK, Android VirtualDevice etc.

    - 4 -

  • 8/18/2019 Curso Android Studio.pdf

    5/258

    - 5 -

  • 8/18/2019 Curso Android Studio.pdf

    6/258

    - 6 -

  • 8/18/2019 Curso Android Studio.pdf

    7/258

    - 7 -

  • 8/18/2019 Curso Android Studio.pdf

    8/258

    - 8 -

  • 8/18/2019 Curso Android Studio.pdf

    9/258

    - 9 -

  • 8/18/2019 Curso Android Studio.pdf

    10/258

    - 10 -

  • 8/18/2019 Curso Android Studio.pdf

    11/258

    - 11 -

  • 8/18/2019 Curso Android Studio.pdf

    12/258

    - 12 -

  • 8/18/2019 Curso Android Studio.pdf

    13/258

    - 13 -

  • 8/18/2019 Curso Android Studio.pdf

    14/258

    - 14 -

  • 8/18/2019 Curso Android Studio.pdf

    15/258

    - 15 -

  • 8/18/2019 Curso Android Studio.pdf

    16/258

    - 16 -

  • 8/18/2019 Curso Android Studio.pdf

    17/258

    - 17 -

  • 8/18/2019 Curso Android Studio.pdf

    18/258

    - 18 -

  • 8/18/2019 Curso Android Studio.pdf

    19/258

    - 19 -

  • 8/18/2019 Curso Android Studio.pdf

    20/258

    - 20 -

  • 8/18/2019 Curso Android Studio.pdf

    21/258

    - 21 -

  • 8/18/2019 Curso Android Studio.pdf

    22/258

    - 22 -

  • 8/18/2019 Curso Android Studio.pdf

    23/258

    - 23 -

  • 8/18/2019 Curso Android Studio.pdf

    24/258

    - 24 -

  • 8/18/2019 Curso Android Studio.pdf

    25/258

    - 25 -

  • 8/18/2019 Curso Android Studio.pdf

    26/258

    - 26 -

  • 8/18/2019 Curso Android Studio.pdf

    27/258

    - 27 -

  • 8/18/2019 Curso Android Studio.pdf

    28/258

    - 28 -

  • 8/18/2019 Curso Android Studio.pdf

    29/258

    - 29 -

  • 8/18/2019 Curso Android Studio.pdf

    30/258

    - 30 -

  • 8/18/2019 Curso Android Studio.pdf

    31/258

  • 8/18/2019 Curso Android Studio.pdf

    32/258

    - 32 -

  • 8/18/2019 Curso Android Studio.pdf

    33/258

    - 33 -

  • 8/18/2019 Curso Android Studio.pdf

    34/258

    - 34 -

  • 8/18/2019 Curso Android Studio.pdf

    35/258

    - 35 -

  • 8/18/2019 Curso Android Studio.pdf

    36/258

    - 36 -

  • 8/18/2019 Curso Android Studio.pdf

    37/258

    - 37 -

  • 8/18/2019 Curso Android Studio.pdf

    38/258

    - 38 -

  • 8/18/2019 Curso Android Studio.pdf

    39/258

    - 39 -

  • 8/18/2019 Curso Android Studio.pdf

    40/258

  • 8/18/2019 Curso Android Studio.pdf

    41/258

    - 41 -

  • 8/18/2019 Curso Android Studio.pdf

    42/258

    - 42 -

  • 8/18/2019 Curso Android Studio.pdf

    43/258

    M A t v .ja aX : ac it _ a n x l m. ���������������������a tt - !- [ l Nexus 4 B - ( Ap Tem

    [ L n a a t Hoi o tal§ L a a t rt c l]

    a e a ut! Ta

    Gri out

    Q e at e a t1 Wiet a n Te e�Lar T t

    e i � al Te

    But,S al B tton

    @ Radi ut n0 c B

    itcho gleB oma Bu n

    e eo re s a La e

    - Pro re Ba N r

    - o re s a (Smal- Pro re Ba (Horizontal101 e a

    Rat g ar 1 inne

    JWe ie FP a Te t

    er ama o

    Pas d Nu erE

    a n ct

    lngréS� prime \a (

    1 em� l I

    1OP�Rir ul .do

    < o n

    C p nt 1 · !� T - ! l D • v ic •e •S •re • •n _ _ _ _ _ " I

    [ lat e a y t aex e )I e í i xt[ 2 e V ew)"

    [ 2 ditTe t. .= spmnerº\ ' e a "3 e V w)" t

    rt ? ! T

    lyo :he match a e t

    acc si ilit i eal abckgr un

    ackgroun tackgroun t

    click l oc nte tD cp t

    le at of cu abl of cu able TouO

    No olvidemos in cializar la propiedad onClick del objeto button con el valor "operar" (dicho nombre es el método quedebemos implementar)

    Código fuente:

    package ar.com.tutorialesya.proyecto005;

    import android.support.v7.app.ActionBarActivity;import android.os.Bundle;

    mport android.v ew.Menu;import android.view.Menu tem;

    mport andro d.v ew.V ew;import android.widget.ArrayAdapter;import android.widget.EditText;

    mport android.w dget.Sp nner;import android.widget.TextView;

    public class ainActivity extends Act onBarActivity {

    private Spinner spinner ;pr vate Ed t ext et ,et2;private TextView tv3;

    @Overrideprotected void onCreate(Bundle saved nstanceState)

    super.onCreate(saved nstanceState);setContentView(R.layout.activity_main);

    et =(EditText)findViewBy d(R.id.et );et2=(EditText)findViewBy d(R.id.et );tv3=(TextV ew)f ndV ew y d(R. d.tv3);

    sp nner = (Sp nner) f ndV ew y d(R. d.sp nner);String []opciones={"sumar","restar","multiplicar","dividir"};

    ArrayAdapter adapter = new ArrayAdapter(this,android . layou.simple_spinner_item, opciones);

    - 43 -

  • 8/18/2019 Curso Android Studio.pdf

    44/258

    - 44 -

  • 8/18/2019 Curso Android Studio.pdf

    45/258

    - 45 -

  • 8/18/2019 Curso Android Studio.pdf

    46/258

    - 46 -

  • 8/18/2019 Curso Android Studio.pdf

    47/258

    public class MainActivity extends ActionBarActivity {private String[] paises = { "Argentina", "Chile", "Paraguay", "Bo"Per ", "Ecuador", "B asi ", "Co ombia", "Venez e a", "private String [] habitantes { "40000000", "17000000", "6500000","10000000", "30000000", "14000000", "183000000", "44000"29000000", "3500000" };private TextView tv ;private ListView v ;@Overrideprotected void o Create(B nd e saved stanceState)super.onCreate(saved nsta ceState);setContentView(R.layout.activity_main);

    tv =(TextView)findViewBy d(R.id.tv );v (ListView)fi dViewBy d(R.id. istView); ArrayAdapter adapter new ArrayA apter(t is, android. R.layou.simple_list_item_1, paises);v .setAdapter(adapter); !v .setOn temC ickListener(new Adapte View.O temC ickL1@Overridepu ic void on temC ick(AdapterView parent, View view, int p�on, long id) {tv .setText("Pob ación de "+ lv .get temAtPosition(positio )+ " es "+

    habitantes[position]); ) ;

    @Overridepublic boo ea o CreateOptions e u( e u menu)// Inf ate the me u; t is adds items to the action bar if it isgetMenu nf ate ().inf ate(R.menu.menu main, menu);presJ t.return true;

    @Overridep b ic boo ean onOptions temSe ected(Menu tem item)// Handle action bar item c icks ere. The actio bar will// a tomatically hand e clicks on the Home/Up button, so long// as you specify a parent activity in An roidManifest.xml.int id = item.get tem d();//noinspection Simp ifiable fStateme tif (id R.id.actio settings) {retur true;

    ret rn super.onOptions temSelected(item);

    ....................._ .... . ....................... ............. ... . ......................Primero def n mos dos vectores paralelos donde a macenamos en uno los nombres de países y en el otro almacenamosla cant dad de hab ta tes de d chos países:

    private String[] paises={"Argentina","Ch le","Paraguay","Bolivia","Peru","Ecuador","Brasil","Colombia","Venezuela","Uruguay"};

    private String habitantes={"40000000","17000000","6500000","10000000","30000000","14000000","183000000","44000000","29000000","3500000"};

    Def n mos un objeto de t po TextV ew y otro de t po L stV ew donde almacenaremos las re enc as a los objetos quedef n mos en el arch vo XML

    private TextView tv ;private ListView lv ;

    E el método onCreate obtenemos la referenc a a os dos objetos

    tv =(TextView)findViewBy d(R.id.tv );lv =(ListView)findViewBy d(R.id.list iew);

    - 47 -

  • 8/18/2019 Curso Android Studio.pdf

    48/258

    - 48 -

  • 8/18/2019 Curso Android Studio.pdf

    49/258

    - 49 -

  • 8/18/2019 Curso Android Studio.pdf

    50/258

    - 50 -

  • 8/18/2019 Curso Android Studio.pdf

    51/258

    - 51 -

  • 8/18/2019 Curso Android Studio.pdf

    52/258

    - 52 -

  • 8/18/2019 Curso Android Studio.pdf

    53/258

    - 53 -

  • 8/18/2019 Curso Android Studio.pdf

    54/258

    - 54 -

  • 8/18/2019 Curso Android Studio.pdf

    55/258

    - 55 -

  • 8/18/2019 Curso Android Studio.pdf

    56/258

    - 56 -

  • 8/18/2019 Curso Android Studio.pdf

    57/258

    - 57 -

  • 8/18/2019 Curso Android Studio.pdf

    58/258

    - 58 -

  • 8/18/2019 Curso Android Studio.pdf

    59/258

    - 59 -

  • 8/18/2019 Curso Android Studio.pdf

    60/258

    - 60 -

  • 8/18/2019 Curso Android Studio.pdf

    61/258

    - 61 -

  • 8/18/2019 Curso Android Studio.pdf

    62/258

    - 62 -

  • 8/18/2019 Curso Android Studio.pdf

    63/258

    - 63 -

  • 8/18/2019 Curso Android Studio.pdf

    64/258

    - 64 -

  • 8/18/2019 Curso Android Studio.pdf

    65/258

    - 65 -

  • 8/18/2019 Curso Android Studio.pdf

    66/258

    - 66 -

  • 8/18/2019 Curso Android Studio.pdf

    67/258

    - 67 -

  • 8/18/2019 Curso Android Studio.pdf

    68/258

    - 68 -

  • 8/18/2019 Curso Android Studio.pdf

    69/258

    - 69 -

  • 8/18/2019 Curso Android Studio.pdf

    70/258

  • 8/18/2019 Curso Android Studio.pdf

    71/258

    - 71 -

  • 8/18/2019 Curso Android Studio.pdf

    72/258

  • 8/18/2019 Curso Android Studio.pdf

    73/258

  • 8/18/2019 Curso Android Studio.pdf

    74/258

    - 74 -

  • 8/18/2019 Curso Android Studio.pdf

    75/258

    - 75 -

  • 8/18/2019 Curso Android Studio.pdf

    76/258

    - 76 -

  • 8/18/2019 Curso Android Studio.pdf

    77/258

    - 77 -

  • 8/18/2019 Curso Android Studio.pdf

    78/258

    - 78 -

  • 8/18/2019 Curso Android Studio.pdf

    79/258

    - 79 -

  • 8/18/2019 Curso Android Studio.pdf

    80/258

    - 80 -

  • 8/18/2019 Curso Android Studio.pdf

    81/258

    - 81 -

  • 8/18/2019 Curso Android Studio.pdf

    82/258

    - 82 -

  • 8/18/2019 Curso Android Studio.pdf

    83/258

    - 83 -

  • 8/18/2019 Curso Android Studio.pdf

    84/258

    - 84 -

  • 8/18/2019 Curso Android Studio.pdf

    85/258

  • 8/18/2019 Curso Android Studio.pdf

    86/258

    - 86 -

  • 8/18/2019 Curso Android Studio.pdf

    87/258

    ! )

    public boolean onCreateOptionsMenu(Menu me u)¡// Inflate the menu; this adds items to the action bar �nt.get enu nflater(). nflate(R.menu.menu_ma n, menu);return true;@Overridepubl c boo ean onOpt ons temSelected(Menu tem te

    !/ Hand e action bar item c cks here. The act on b// automat cally handle cl cks on the Home/Up butto// as you spec fy a parent act v ty n Andro d anint id= item.get tem d();//no nspect on S mp f ab e fStatementf ( d== R. d.act on_sett ngs) {return true;retur super.onOptions temSelected(item);

    public void grabar(View v)Str g ombre= et .getText().toStr ng();Stri g datos= et2.get ext() .toString();SharedPreferences preferenc as= getSharedPreferences("agenda",SharedPreferences.Ed tor editor= preferenc as.ed t();editor.putString(nombre, datos);

    ContexJ. ODE Ped tor.comm t();Toast.makeText(this,"Datos grabados",Toast.LENGTH.show();

    publ c void recuperar ew v)Str ng nombre= et .getText().toStr ng();Shared refere ces prefe= getShared references("agenda",Str ng d= prefe.getStr ng(nombre, ""); Context.MO ERIVATE)f (d.ength()== ) {Toast.makeText(th s," o ex ste d cho nombre en !agenda",Toast. GTH else {et2.setText(d);

    De nimos dos objetos de la clase Ed t ext donde se ngresan el nombre de la persona y los datos de d cha persona:

    ív T x , 2;

    Cuando se p es ona el botón g abar

    v (V w v) {

    }

    S = . T x (). S ();S n = 2. T x (). oS n ();Sh P f f = Sh P f (" ", x .MO _PRIVAT );Sh P f . = f . ();

    . S ( , );

    . ();T . k T x ( h ," ",T L NGTH_LONG). h w();

    Extraemos los dos datos de los Ed t ext creamos un objeto de la clas ha ed e erences con el nombre de agenda"Creamos un objeto de la clase Ed to y procedemos a g abar en el arch vo de pre erenc as med ante put tr ng

    . S ( , );

    ign ca que en el arch vo de p e e enc as se almacena una entrada con el nombre de la pe sona y los datos de d chapersona

    or otro lado tenemos la lóg ca para recupe ar los datos de una pe sona de la agenda

    v (V w v) {S = . T x (). S ();

    - 87 -

  • 8/18/2019 Curso Android Studio.pdf

    88/258

    - 88 -

  • 8/18/2019 Curso Android Studio.pdf

    89/258

    - 89 -

  • 8/18/2019 Curso Android Studio.pdf

    90/258

    - 90 -

  • 8/18/2019 Curso Android Studio.pdf

    91/258

  • 8/18/2019 Curso Android Studio.pdf

    92/258

    - 92 -

  • 8/18/2019 Curso Android Studio.pdf

    93/258

    - 93 -

  • 8/18/2019 Curso Android Studio.pdf

    94/258

    - 94 -

  • 8/18/2019 Curso Android Studio.pdf

    95/258

    - 95 -

  • 8/18/2019 Curso Android Studio.pdf

    96/258

    - 96 -

  • 8/18/2019 Curso Android Studio.pdf

    97/258

    - 97 -

  • 8/18/2019 Curso Android Studio.pdf

    98/258

    - 98 -

  • 8/18/2019 Curso Android Studio.pdf

    99/258

    - 99 -

  • 8/18/2019 Curso Android Studio.pdf

    100/258

    - 100 -

  • 8/18/2019 Curso Android Studio.pdf

    101/258

    - 101 -

  • 8/18/2019 Curso Android Studio.pdf

    102/258

    - 102 -

  • 8/18/2019 Curso Android Studio.pdf

    103/258

  • 8/18/2019 Curso Android Studio.pdf

    104/258

    - 104 -

  • 8/18/2019 Curso Android Studio.pdf

    105/258

    - 105 -

  • 8/18/2019 Curso Android Studio.pdf

    106/258

    import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.Toast;

    import java.io.BufferedReader;import java.io.File;

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;

    public class MainActivity extends ActionBarActivity {

    private EditText et1,et2;

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

    et1=(EditText)findViewById(R.id.editText); et2=(EditText)findViewById(R.id.editText2); }

    @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; }

    @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long

    // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId();

    //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; }

    return super.onOptionsItemSelected(item); }

    public void grabar(View v) { String nomarchivo = et1.getText().toString(); String contenido = et2.getText().toString(); try {

    - 106 -

  • 8/18/2019 Curso Android Studio.pdf

    107/258

  • 8/18/2019 Curso Android Studio.pdf

    108/258

    Creamos un nuevo objeto de la clase File indicando el camino de la unidad SD y el nombre del archivo acrear: File file = new File(tarjeta.getAbsolutePath(), nomarchivo);Por último similar al acceso de un archivo interno creamos un objeto de la clase OutputStreamWriter: OutputStreamWriter osw =new OutputStreamWriter(new FileOutputStream(file));

    Grabamos el contenido del EditText: osw.write(contenido);Cerramos el archivo: osw.flush(); osw.close(); Toast.makeText(this,"Los datos fueron grabadoscorrectamente",Toast.LENGTH_SHORT).show(); et1.setText(""); et2.setText(""); } catch (IOException ioe) { Toast.makeText(this, "No se pudo grabar", Toast.LENGTH_SHORT).show();

    } }Para la lectura del archivo nuevamente obtenemos la referencia de la tarjeta SD para obtener el path de launidad de almacenamiento, el resto del algoritmo es similar al visto con un archivo interno: public void recuperar(View v) { String nomarchivo = et1.getText().toString();

    File tarjeta = Environment.getExternalStorageDirectory(); File file = new File(tarjeta.getAbsolutePath(), nomarchivo);

    try { FileInputStream fIn = new FileInputStream(file);

    InputStreamReader archivo=new InputStreamReader(fIn); BufferedReader br=new BufferedReader(archivo); String linea=br.readLine(); String todo=""; while (linea!=null) {

    todo=todo+linea+"\n"; linea=br.readLine(); } br.close(); archivo.close(); et2.setText(todo);

    } catch (IOException e) { Toast.makeText(this, "No se pudo leer", Toast.LENGTH_SHORT).show(); } }Este proyecto lo puede descargar en un zip desde este enlace: proyecto018.zip

    - 108 -

  • 8/18/2019 Curso Android Studio.pdf

    109/258

    Importante.

    Si lo probamos con el emulador del Nexus 5 en el Android Studio cuando tratemos de grabar nos mostrará lanotificación "No se pudo grabar", esto debido a que dicho celular no permite extender la memoria mediantetarjetas sd.La solución para probar es crear otro dispositivo virtual. Los pasos para crear otro dispositivo virtual enAndroid Studio son los siguientes:1 - Desde el menú de opciones del Android Studio accedemos a Tools->Android->AVD Manager.

    2 - Aparece un diálogo con todas las máquinas virtuales creadas hasta el momento (en las primeras versionesde Android Studio crea una máquina virtual para el Nexus 5)

    Presionamos el botón "Create Virtual Device".

    - 109 -

  • 8/18/2019 Curso Android Studio.pdf

    110/258

    - 110 -

  • 8/18/2019 Curso Android Studio.pdf

    111/258

    - 111 -

  • 8/18/2019 Curso Android Studio.pdf

    112/258

    - 112 -

  • 8/18/2019 Curso Android Studio.pdf

    113/258

  • 8/18/2019 Curso Android Studio.pdf

    114/258

  • 8/18/2019 Curso Android Studio.pdf

    115/258

    - 115 -

  • 8/18/2019 Curso Android Studio.pdf

    116/258

    - 116 -

  • 8/18/2019 Curso Android Studio.pdf

    117/258

    - 117 -

  • 8/18/2019 Curso Android Studio.pdf

    118/258

    - 118 -

  • 8/18/2019 Curso Android Studio.pdf

    119/258

    - 119 -

  • 8/18/2019 Curso Android Studio.pdf

    120/258

    - 120 -

  • 8/18/2019 Curso Android Studio.pdf

    121/258

    - 121 -

  • 8/18/2019 Curso Android Studio.pdf

    122/258

    - 122 -

  • 8/18/2019 Curso Android Studio.pdf

    123/258

    - 123 -

  • 8/18/2019 Curso Android Studio.pdf

    124/258

    - 124 -

  • 8/18/2019 Curso Android Studio.pdf

    125/258

    - 125 -

  • 8/18/2019 Curso Android Studio.pdf

    126/258

    - 126 -

  • 8/18/2019 Curso Android Studio.pdf

    127/258

    - 127 -

  • 8/18/2019 Curso Android Studio.pdf

    128/258

    - 128 -

  • 8/18/2019 Curso Android Studio.pdf

    129/258

    - 129 -

  • 8/18/2019 Curso Android Studio.pdf

    130/258

    - 130 -

  • 8/18/2019 Curso Android Studio.pdf

    131/258

    - 131 -

  • 8/18/2019 Curso Android Studio.pdf

    132/258

    - 132 -

  • 8/18/2019 Curso Android Studio.pdf

    133/258

    - 133 -

  • 8/18/2019 Curso Android Studio.pdf

    134/258

    - 134 -

  • 8/18/2019 Curso Android Studio.pdf

    135/258

    - 135 -

  • 8/18/2019 Curso Android Studio.pdf

    136/258

  • 8/18/2019 Curso Android Studio.pdf

    137/258

    - 137 -

  • 8/18/2019 Curso Android Studio.pdf

    138/258

    - 138 -

  • 8/18/2019 Curso Android Studio.pdf

    139/258

    - 139 -

  • 8/18/2019 Curso Android Studio.pdf

    140/258

  • 8/18/2019 Curso Android Studio.pdf

    141/258

    - 141 -

  • 8/18/2019 Curso Android Studio.pdf

    142/258

  • 8/18/2019 Curso Android Studio.pdf

    143/258

    - 143 -

  • 8/18/2019 Curso Android Studio.pdf

    144/258

    - 144 -

  • 8/18/2019 Curso Android Studio.pdf

    145/258

    - 145 -

  • 8/18/2019 Curso Android Studio.pdf

    146/258

    - 146 -

  • 8/18/2019 Curso Android Studio.pdf

    147/258

    - 147 -

  • 8/18/2019 Curso Android Studio.pdf

    148/258

    - 148 -

  • 8/18/2019 Curso Android Studio.pdf

    149/258

    - 149 -

  • 8/18/2019 Curso Android Studio.pdf

    150/258

    - 150 -

  • 8/18/2019 Curso Android Studio.pdf

    151/258

    - 151 -

  • 8/18/2019 Curso Android Studio.pdf

    152/258

  • 8/18/2019 Curso Android Studio.pdf

    153/258

    - 153 -

  • 8/18/2019 Curso Android Studio.pdf

    154/258

    - 154 -

  • 8/18/2019 Curso Android Studio.pdf

    155/258

    - 155 -

  • 8/18/2019 Curso Android Studio.pdf

    156/258

    - 156 -

  • 8/18/2019 Curso Android Studio.pdf

    157/258

    - 157 -

  • 8/18/2019 Curso Android Studio.pdf

    158/258

    - 158 -

  • 8/18/2019 Curso Android Studio.pdf

    159/258

    - 159 -

  • 8/18/2019 Curso Android Studio.pdf

    160/258

    - 160 -

  • 8/18/2019 Curso Android Studio.pdf

    161/258

  • 8/18/2019 Curso Android Studio.pdf

    162/258

    - 162 -

  • 8/18/2019 Curso Android Studio.pdf

    163/258

    - 163 -

  • 8/18/2019 Curso Android Studio.pdf

    164/258

    - 164 -

  • 8/18/2019 Curso Android Studio.pdf

    165/258

    - 165 -

  • 8/18/2019 Curso Android Studio.pdf

    166/258

  • 8/18/2019 Curso Android Studio.pdf

    167/258

    - 167 -

  • 8/18/2019 Curso Android Studio.pdf

    168/258

    - 168 -

  • 8/18/2019 Curso Android Studio.pdf

    169/258

    - 169 -

  • 8/18/2019 Curso Android Studio.pdf

    170/258

    - 170 -

  • 8/18/2019 Curso Android Studio.pdf

    171/258

    - 171 -

  • 8/18/2019 Curso Android Studio.pdf

    172/258

    - 172 -

  • 8/18/2019 Curso Android Studio.pdf

    173/258

    - 173 -

  • 8/18/2019 Curso Android Studio.pdf

    174/258

    - 174 -

  • 8/18/2019 Curso Android Studio.pdf

    175/258

    - 175 -

  • 8/18/2019 Curso Android Studio.pdf

    176/258

    - 176 -

  • 8/18/2019 Curso Android Studio.pdf

    177/258

    - 177 -

  • 8/18/2019 Curso Android Studio.pdf

    178/258

    - 178 -

  • 8/18/2019 Curso Android Studio.pdf

    179/258

    - 179 -

  • 8/18/2019 Curso Android Studio.pdf

    180/258

    - 180 -

  • 8/18/2019 Curso Android Studio.pdf

    181/258

  • 8/18/2019 Curso Android Studio.pdf

    182/258

    - 182 -

  • 8/18/2019 Curso Android Studio.pdf

    183/258

    - 183 -

  • 8/18/2019 Curso Android Studio.pdf

    184/258

    - 184 -

  • 8/18/2019 Curso Android Studio.pdf

    185/258

    - 185 -

  • 8/18/2019 Curso Android Studio.pdf

    186/258

  • 8/18/2019 Curso Android Studio.pdf

    187/258

    - 187 -

  • 8/18/2019 Curso Android Studio.pdf

    188/258

    - 188 -

  • 8/18/2019 Curso Android Studio.pdf

    189/258

  • 8/18/2019 Curso Android Studio.pdf

    190/258

    - 190 -

  • 8/18/2019 Curso Android Studio.pdf

    191/258

  • 8/18/2019 Curso Android Studio.pdf

    192/258

    - 192 -

  • 8/18/2019 Curso Android Studio.pdf

    193/258

    - 193 -

  • 8/18/2019 Curso Android Studio.pdf

    194/258

    - 194 -

  • 8/18/2019 Curso Android Studio.pdf

    195/258

    - 195 -

  • 8/18/2019 Curso Android Studio.pdf

    196/258

    - 196 -

  • 8/18/2019 Curso Android Studio.pdf

    197/258

    - 197 -

  • 8/18/2019 Curso Android Studio.pdf

    198/258

    - 198 -

  • 8/18/2019 Curso Android Studio.pdf

    199/258

  • 8/18/2019 Curso Android Studio.pdf

    200/258

    - 200 -

  • 8/18/2019 Curso Android Studio.pdf

    201/258

    - 201 -

  • 8/18/2019 Curso Android Studio.pdf

    202/258

    - 202 -

  • 8/18/2019 Curso Android Studio.pdf

    203/258

    - 203 -

  • 8/18/2019 Curso Android Studio.pdf

    204/258

    - 204 -

  • 8/18/2019 Curso Android Studio.pdf

    205/258

    - 205 -

  • 8/18/2019 Curso Android Studio.pdf

    206/258

    - 206 -

  • 8/18/2019 Curso Android Studio.pdf

    207/258

    - 207 -

  • 8/18/2019 Curso Android Studio.pdf

    208/258

    - 208 -

  • 8/18/2019 Curso Android Studio.pdf

    209/258

    - 209 -

  • 8/18/2019 Curso Android Studio.pdf

    210/258

    - 210 -

  • 8/18/2019 Curso Android Studio.pdf

    211/258

    - 211 -

  • 8/18/2019 Curso Android Studio.pdf

    212/258

    - 212 -

  • 8/18/2019 Curso Android Studio.pdf

    213/258

    - 213 -

  • 8/18/2019 Curso Android Studio.pdf

    214/258

    - 214 -

  • 8/18/2019 Curso Android Studio.pdf

    215/258

  • 8/18/2019 Curso Android Studio.pdf

    216/258

    - 216 -

  • 8/18/2019 Curso Android Studio.pdf

    217/258

  • 8/18/2019 Curso Android Studio.pdf

    218/258

  • 8/18/2019 Curso Android Studio.pdf

    219/258

    - 219 -

  • 8/18/2019 Curso Android Studio.pdf

    220/258

    - 220 -

  • 8/18/2019 Curso Android Studio.pdf

    221/258

    - 221 -

  • 8/18/2019 Curso Android Studio.pdf

    222/258

    - 222 -

  • 8/18/2019 Curso Android Studio.pdf

    223/258

    - 223 -

  • 8/18/2019 Curso Android Studio.pdf

    224/258

    - 224 -

  • 8/18/2019 Curso Android Studio.pdf

    225/258

  • 8/18/2019 Curso Android Studio.pdf

    226/258

    - 226 -

  • 8/18/2019 Curso Android Studio.pdf

    227/258

    - 227 -

  • 8/18/2019 Curso Android Studio.pdf

    228/258

    - 228 -

  • 8/18/2019 Curso Android Studio.pdf

    229/258

    - 229 -

  • 8/18/2019 Curso Android Studio.pdf

    230/258

    - 230 -

  • 8/18/2019 Curso Android Studio.pdf

    231/258

  • 8/18/2019 Curso Android Studio.pdf

    232/258

    - 232 -

  • 8/18/2019 Curso Android Studio.pdf

    233/258

    - 233 -

  • 8/18/2019 Curso Android Studio.pdf

    234/258

    - 234 -

  • 8/18/2019 Curso Android Studio.pdf

    235/258

    - 235 -

  • 8/18/2019 Curso Android Studio.pdf

    236/258

  • 8/18/2019 Curso Android Studio.pdf

    237/258

    - 237 -

  • 8/18/2019 Curso Android Studio.pdf

    238/258

    - 238 -

  • 8/18/2019 Curso Android Studio.pdf

    239/258

    - 239 -

  • 8/18/2019 Curso Android Studio.pdf

    240/258

    - 240 -

  • 8/18/2019 Curso Android Studio.pdf

    241/258

    - 241 -

  • 8/18/2019 Curso Android Studio.pdf

    242/258

    - 242 -

  • 8/18/2019 Curso Android Studio.pdf

    243/258

    - 243 -

  • 8/18/2019 Curso Android Studio.pdf

    244/258

    - 244 -

  • 8/18/2019 Curso Android Studio.pdf

    245/258

    - 245 -

  • 8/18/2019 Curso Android Studio.pdf

    246/258

    - 246 -

  • 8/18/2019 Curso Android Studio.pdf

    247/258

    - 247 -

  • 8/18/2019 Curso Android Studio.pdf

    248/258

    - 248 -

  • 8/18/2019 Curso Android Studio.pdf

    249/258

    - 249 -

  • 8/18/2019 Curso Android Studio.pdf

    250/258

  • 8/18/2019 Curso Android Studio.pdf

    251/258

  • 8/18/2019 Curso Android Studio.pdf

    252/258

    - 252 -

  • 8/18/2019 Curso Android Studio.pdf

    253/258

    - 253 -

  • 8/18/2019 Curso Android Studio.pdf

    254/258

    - 254 -

  • 8/18/2019 Curso Android Studio.pdf

    255/258

  • 8/18/2019 Curso Android Studio.pdf

    256/258

  • 8/18/2019 Curso Android Studio.pdf

    257/258

    - 257 -

  • 8/18/2019 Curso Android Studio.pdf

    258/258