Curso android studio

50 views 184 slides Jun 27, 2019
Slide 1
Slide 1 of 258
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137
Slide 138
138
Slide 139
139
Slide 140
140
Slide 141
141
Slide 142
142
Slide 143
143
Slide 144
144
Slide 145
145
Slide 146
146
Slide 147
147
Slide 148
148
Slide 149
149
Slide 150
150
Slide 151
151
Slide 152
152
Slide 153
153
Slide 154
154
Slide 155
155
Slide 156
156
Slide 157
157
Slide 158
158
Slide 159
159
Slide 160
160
Slide 161
161
Slide 162
162
Slide 163
163
Slide 164
164
Slide 165
165
Slide 166
166
Slide 167
167
Slide 168
168
Slide 169
169
Slide 170
170
Slide 171
171
Slide 172
172
Slide 173
173
Slide 174
174
Slide 175
175
Slide 176
176
Slide 177
177
Slide 178
178
Slide 179
179
Slide 180
180
Slide 181
181
Slide 182
182
Slide 183
183
Slide 184
184
Slide 185
185
Slide 186
186
Slide 187
187
Slide 188
188
Slide 189
189
Slide 190
190
Slide 191
191
Slide 192
192
Slide 193
193
Slide 194
194
Slide 195
195
Slide 196
196
Slide 197
197
Slide 198
198
Slide 199
199
Slide 200
200
Slide 201
201
Slide 202
202
Slide 203
203
Slide 204
204
Slide 205
205
Slide 206
206
Slide 207
207
Slide 208
208
Slide 209
209
Slide 210
210
Slide 211
211
Slide 212
212
Slide 213
213
Slide 214
214
Slide 215
215
Slide 216
216
Slide 217
217
Slide 218
218
Slide 219
219
Slide 220
220
Slide 221
221
Slide 222
222
Slide 223
223
Slide 224
224
Slide 225
225
Slide 226
226
Slide 227
227
Slide 228
228
Slide 229
229
Slide 230
230
Slide 231
231
Slide 232
232
Slide 233
233
Slide 234
234
Slide 235
235
Slide 236
236
Slide 237
237
Slide 238
238
Slide 239
239
Slide 240
240
Slide 241
241
Slide 242
242
Slide 243
243
Slide 244
244
Slide 245
245
Slide 246
246
Slide 247
247
Slide 248
248
Slide 249
249
Slide 250
250
Slide 251
251
Slide 252
252
Slide 253
253
Slide 254
254
Slide 255
255
Slide 256
256
Slide 257
257
Slide 258
258

About This Presentation

android studio


Slide Content

Manual Básico
Android Studio
=-· ----·--------·-·
-e...;:.:z;.:;..
��
=
��
=;:::=.. ... _
- 1 -

ÍNDICE
1 -Instalación de las herramientas necesarias para
programar para Android Studio
2 -Pasos para crear el primer proyecto Android Studio
3 -Capturar el clic de un botón
4 -Controles RadioGroup y RadioButton
5 -Control CheckBox
6 -Control Spinner
7 -Control ListView (con una lista de String)
8 -Control ImageButton
9 -Notificaciones sencillas mediante la clase Toast
10 -Control EditText
11 -Lanzar un segundo "Activity"
12 -Lanzar un segundo "Activity" y pasar parámetros
13 -Almacenamiento de datos mediante la clase SharedPreferences
14 -Almacenamiento de datos en un archivo de texto en la memoria interna
15 -Almacenamiento de datos en un archivo de texto
localizado en una tarjeta SD
16 -Almacenamiento en una base de datos SQLite
17 -Instalación del programa Android en un dispositivo real
18 -Layout (LinearLayout)
19 -Layout (TableLayout)
20 -Layout (FrameLayout)
21 -Layout (ScrollView y LinearLayout)
22 -Icono de la aplicación
23 -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 (archivo contenido en una tarjeta SD)
26 -Reproducción de audio ( archivo localizado en internet)
2 7 -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 -

30 -Dibujar: graficar un píxel
31 -Dibujar: pintar fondo y dibujar líneas
32 -Dibujar: rectángulos
33 -Dibujar: círculos
34 -Dibujar: óvalos
35 -Dibujar: texto
36 -Dibujar: texto con fuentes externas
37 -Dibujar: texto sobre un camino
38 -Dibujar: una imagen
39 -Evento touch: dibujar un círculo
40 -Evento touch: juego del buscaminas
41 -Archivo strings.xml
42 -Internacionalización y archivo strings.xml
43 -Localización y archivo strings.xml
44 -Componente ActionBar (Básica)
45 -Componente ActionBar (Botones de acción)
46 -Componente ActionBar (Ocultarlo y mostrarlo)
- 3 y

1 -Instalación de las herramientas necesarias
para programar para Android Studio
Descarga de herramientas necesarios para
programar para Android con el Android Studio
1 -Primero debemos instalar el compilador de Java y la máquina virtual. Estas
herramientas las podemos descargar de:
Java SE Development Kit (JDK).
2 -El segundo paso es la descarga del Android Studio (que contiene todo lo necesario
para 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 de
descargar:
l =I
Welcome to the Android Studio
Setup
Setup will guide you through the installation of Android
Studio.
Itis recommended that you dose ali other applications.
before starting Setup. This 'NiTI make it possible to update
relevant sys.tem files '11.'ithout having to reboot your
computer.
Click Next to co.ntinue.
Next> 'Cancel
Dejamos por defecto para que instale el Android Studio, el Android SDK, Android Virtual
Device etc.:
- 4 -

- 5 -

- 6 -

- 7 -

- 8 -

- 9 -

- 10 -

- 11 -

- 12 -

- 13 -

- 14 -

- 15 -

- 16 -

- 17 -

- 18 -

- 19 -

- 20 -

- 21 -

- 22 -

- 23 -

- 24 -

- 25 -

- 26 -

- 27 -

- 28 -

- 29 -

- 30 -

- 31 -

- 32 -

- 33 -

- 34 -

- 35 -

- 36 -

- 37 -

- 38 -

- 39 -

- 40 -

- 41 -

- 42 -

e MainActivity.java X : activity_main.xml X
m..... �����������������������
Palette -1:t-!-[l-lii!J Nexus 4-B-(J)AppTheme
[IIJ Linearlayout (Horizontal)
§ Linearlayout (Vertical]
� T ablelayout
!§j T ableRow
In] Gridlayout
Q!j Relativelayout
1::J Wi<l9ets
� Plain TextView
�Large Text
� Mediurn T ext
�Small Text
e� Button
o, Small Button
@ RadioButton
0 CheckBox
Switch
-ToggleButton
ImageButton
ImageView
ProgressBar (Large)
-ProgressBar (Normal)
-ProgressBar (Small)
-ProgressBar (Horizontal)
101 SeekBar
RatingBar
:�1Spinner
�JWebView
l::J T ext Fields
[] Plain T ext
[] Person Name
[] Password
[] Password (Nurneric)
[] E-mail
"""MainActivity-
lngréS� prime \ral(l-1
ln�rese segundo valor
11em1
�l>llffl'II
1 OPE�R i
r�ul1.1do
<J on
Component Tree ]: � 1 -O· _.! �
�T-!!ll"
D

e
v-
i
c•
e

Sc

re

e

n
______ "'-I

[g Relativelayout
�-
a
� tvl (T extView) -"Ingrese pn
í[J editlext
[iill tv2 (T extView) -"Ingrese se :¡;'
[) et2 (EditT ext) �
. .
=spmner
� ..
º\ button -'operar"

[iill tv3 (T extView) -"resultado"
3
Properties ? !> T
layout:height match_parent
style
accessibilityliveR
alpha
background
backgroundTint
backgroundTint�
clickable o
contentDescri
ptic
elevation
focusable o
focusablelnToud O
No olvidemos inicializar la propiedad onClick del objeto button con el valor "operar" (dicho nombre es el método que
debemos implementar)
Código fuente:
package ar.com.tutorialesya.proyecto005;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.Menultem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
private Spinner spinnerl;
private EditText etl,et2;
private TextView tv3;
@Override
protected void onCreate(Bundle savedinstanceState)
super.onCreate(savedinstanceState);
setContentView(R.layout.activity_main);
etl=(EditText)findViewByid(R.id.etl);
et2=(EditText)findViewByid(R.id.et2);
tv3=(TextView)findViewByid(R.id.tv3);
spinnerl = (Spinner) findViewByid(R.id.spinner);
String []opciones={"sumar","restar","multiplicar","dividir"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android . layout
.simple_spinner_item, opciones);
- 43 -

- 44 -

- 45 -

- 46 -

public class MainActivity extends ActionBarActivity {
private String[] paises = { "Argentina", "Chile", "Paraguay", "Bolivia",
"Peru", "Ecuador", "Brasil", "Colombia", "Venezuela", "Uruguay"
priva te String [] habitantes = { "40000000", "17000000", "6500000",
"10000000", "30000000", "14000000", "183000000", "44000000",
"29000000", "3500000" };
private TextView tvl;
private ListView lvl;
@Override
protected void onCreate(Bundle savedinstanceState)
super.onCreate(savedinstanceState);
setContentView(R.layout.activity_main);
tvl=(TextView)findViewByid(R.id.tvl);
lvl =(ListView)findViewByid(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.l R. layout
.simple_list_item_1, paises);
lvl.setAdapter(adapter); !
lvl.setOnitemClickListener(new AdapterView.OnitemClickListener() 1
@Override i
public void onitemClick(AdapterView parent, View view, int posit�on, long id) {
tvl. setText ( "Población de "+ lvl. getitemAtPosi tion (posi tion) !+ " es "+
habitantes[position]);
) ) ;
@Override
public boolean onCreateOptionsMenu(Menu menu)
// Inflate the menu; this adds items to the action bar if it is
getMenuinflater() .inflate(R.menu.menu_main, menu);
presJ,nt.
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.getltemld();
//noinspection SimplifiableifStatement
if (id== R.id.action settings) {
return true;
return super.onOptionsitemSelected(item);
..................... ____ ................................................... ___ ............................ !
Primero definimos dos vectores paralelos donde almacenamos en uno los nombres de países y en el otro almacenamos
la cantidad de habitantes de dichos países:
private String[] paises={"Argentina","Chile","Paraguay","Bolivia","Peru",
"Ecuador","Brasil","Colombia","Venezuela","Uruguay"};
private String[] habitantes={"40000000","17000000","6500000","10000000","30000000",
"14000000","183000000","44000000","29000000","3500000"};
Definimos un objeto de tipo TextView y otro de tipo ListView donde almacenaremos las referencias a los objetos que
definimos en el archivo XML:
private TextView tvl;
private ListView lvl;
En el método onCreate obtenemos la referencia a los dos objetos:
tvl=(TextView)findViewByid(R.id.tvl);
lvl =(ListView)findViewByid(R.id.listView);
- 47 -

- 48 -

- 49 -

- 50 -

- 51 -

- 52 -

- 53 -

- 54 -

- 55 -

- 56 -

- 57 -

- 58 -

- 59 -

- 60 -

- 61 -

- 62 -

- 63 -

- 64 -

- 65 -

- 66 -

- 67 -

- 68 -

- 69 -

- 70 -

- 71 -

- 72 -

- 73 -

- 74 -

- 75 -

- 76 -

- 77 -

- 78 -

- 79 -

- 80 -

- 81 -

- 82 -

- 83 -

- 84 -

- 85 -

- 86 -

! )
public boolean onCreateOptionsMenu(Menu menu) ¡
// Inflate the menu; this adds items to the action bar if it is pres�nt.
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 nombre
=etl.getText() .toString();
String datos
=et2.getText() .toString();
SharedPreferences preferencias
=getSharedPreferences("agenda",
SharedPreferences.Editor editor
=preferencias.edit();
editor.putString(nombre, datos);
Con texJ. MODE Pf
editor.commit();
Toast.makeText(this,"Datos grabados",Toast.LENGTH_LONG) .show();
public void recuperar{View v)
String nombre
=etl.getText() .toString();
SharedPreferences prefe
=getSharedPreferences("agenda",
String d
=prefe.getString(nombre, "");
Context.MODE JRIVATE);
if (d. length ()
==O) {
Toast.makeText(this,"No existe dicho nombre en la
!
agenda", Toas t. LENGTH _ LC
else {
et2.setText(d);
Definimos dos objetos de la clase EditText donde se ingresan el nombre de la persona y los datos de dicha persona:
prívate EditText etl,et2;
Cuando se presiona el botón grabar:
public void grabar(View v) {
}
String nombre=etl.getText().toString();
String datos=et2.getText().toString();
SharedPreferences preferencias=getSharedPreferences("agenda", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=preferencias.edit();
editor.putString(nombre, datos);
editor.commit();
Toast.makeText(this,"Datos grabados",Toast.LENGTH_LONG).show();
Extraemos los dos datos de los EditText, creamos un objeto de la clas SharedPReferences con el nombre de "agenda".
Creamos un objeto de la clase Editor y procedemos a grabar en el archivo de preferencias mediante putString:
editor.putString(nombre, datos);
Significa que en el archivo de preferencias se almacena una entrada con el nombre de la persona y los datos de dicha
persona.
Por otro lado tenemos la lógica para recuperar los datos de una persona de la agenda:
public void recuperar(View v) {
String nombre=etl.getText().toString();
- 87 -

- 88 -

- 89 -

- 90 -

- 91 -

- 92 -

- 93 -

- 94 -

- 95 -

- 96 -

- 97 -

- 98 -

- 99 -

- 100 -

- 101 -

- 102 -

- 103 -

- 104 -

- 105 -

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 L

File tarjeta = Environment.getExternalStorageDirectory();
Toast.makeText(this,tarjeta.getAbsolutePath(),Toast.LENGTH_LONG).show();
File file = new File(tarjeta.getAbsolutePath(), nomarchivo);
OutputStreamWriter osw = new OutputStreamWriter(
new FileOutputStream(file));
osw.write(contenido);
osw.flush();
osw.close();
Toast.makeText(this, "Los datos fueron grabados correctamente",
Toast.LENGTH_SHORT).show();
et1.setText("");
et2.setText("");
} catch (IOException ioe) {
Toast.makeText(this, "No se pudo grabar",
Toast.LENGTH_SHORT).show();
}
}
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 + " ";
linea = br.readLine();
}
br.close();
archivo.close();
et2.setText(todo);
} catch (IOException e) {
Toast.makeText(this, "No se pudo leer",
Toast.LENGTH_SHORT).show();
}
}
}
El método para grabar los datos en un archivo de texto localizado en una tarjeta SD comienza obteniendo
el directorio raiz de la tarjeta a través del método getExternalStorageDirectory(), el mismo retorna un
objeto de la clase File.
public void grabar(View v) {
String nomarchivo = et1.getText().toString();
String contenido=et2.getText().toString();
try
{
File tarjeta = Environment.getExternalStorageDirectory();
- 107 L

Creamos un nuevo objeto de la clase File indicando el camino de la unidad SD y el nombre del archivo a
crear:
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 grabados
correctamente",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 la
unidad 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 L

Importante.
Si lo probamos con el emulador del Nexus 5 en el Android Studio cuando tratemos de grabar nos mostrará la
notificación "No se pudo grabar", esto debido a que dicho celular no permite extender la memoria mediante
tarjetas sd.
La solución para probar es crear otro dispositivo virtual. Los pasos para crear otro dispositivo virtual en
Android 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 versiones
de Android Studio crea una máquina virtual para el Nexus 5)
Presionamos el botón "Create Virtual Device".
- 109 L

- 110 -

- 111 -

- 112 -

- 113 -

- 114 -

- 115 -

- 116 -

- 117 -

- 118 -

- 119 -

- 120 -

- 121 -

- 122 -

- 123 -

- 124 -

- 125 -

- 126 -

- 127 -

- 128 -

- 129 -

- 130 -

- 131 -

- 132 -

- 133 -

- 134 -

- 135 -

- 136 -

- 137 -

- 138 -

- 139 -

- 140 -

- 141 -

- 142 -

- 143 -

- 144 -

- 145 -

- 146 -

- 147 -

- 148 -

- 149 -

- 150 -

- 151 -

- 152 -

- 153 -

- 154 -

- 155 -

- 156 -

- 157 -

- 158 -

- 159 -

- 160 -

- 161 -

- 162 -

- 163 -

- 164 -

- 165 -

- 166 -

- 167 -

- 168 -

- 169 -

- 170 -

- 171 -

- 172 -

- 173 -

- 174 -

- 175 -

- 176 -

- 177 -

- 178 -

- 179 -

- 180 -

- 181 -

- 182 -

- 183 -

- 184 -

- 185 -

- 186 -

- 187 -

- 188 -

- 189 -

- 190 -

- 191 -

- 192 -

- 193 -

- 194 -

- 195 -

- 196 -

- 197 -

- 198 -

- 199 -

- 200 -

- 201 -

- 202 -

- 203 -

- 204 -

- 205 -

- 206 -

- 207 -

- 208 -

- 209 -

- 210 -

- 211 -

- 212 -

- 213 -

- 214 -

- 215 -

- 216 -

- 217 -

- 218 -

- 219 -

- 220 -

- 221 -

- 222 -

- 223 -

- 224 -

- 225 -

- 226 -

- 227 -

- 228 -

- 229 -

- 230 -

- 231 -

- 232 -

- 233 -

- 234 -

- 235 -

- 236 -

- 237 -

- 238 -

- 239 -

- 240 -

- 241 -

- 242 -

- 243 -

- 244 -

- 245 -

- 246 -

- 247 -

- 248 -

- 249 -

- 250 -

- 251 -

- 252 -

- 253 -

- 254 -

- 255 -

- 256 -

- 257 -

- 258 -