https://manuais.iessanclemente.net/index.php?title=PDM_Avanzado_Pr%C3%A1ctica_a_entregar&feed=atom&action=historyPDM Avanzado Práctica a entregar - Historial de revisiones2024-03-29T13:36:53ZHistorial de revisiones de esta página en el wikiMediaWiki 1.36.2https://manuais.iessanclemente.net/index.php?title=PDM_Avanzado_Pr%C3%A1ctica_a_entregar&diff=52691&oldid=prevCarrion: /* Pantalla Lista Lugares */2015-01-30T18:29:01Z<p><span dir="auto"><span class="autocomment">Pantalla Lista Lugares</span></span></p>
<p><b>Página nueva</b></p><div>==Introdución==<br />
<br />
Para avaliar ao profesorado que sigue o curso en Platega propóñense dúas opcións:<br />
*ou ben facer as tarefas indicadas en Platega para cada unha das unidades didácticas<br />
*ou facer unha aplicación completa que se indica a continuación aplicando os conceptos aprendidos en cada unha delas.<br />
<br />
Na plataforma Platega entrégase ao alumnado o proxecto da aplicación coa parte da interface xa feita, quitando todo o código que teña que ver có contido das diferentes unidades didácticas.<br />
<br />
<br />
A aplicación instalable é a seguinte: [[Media:DiarodeViaxe.apk]].<br />
<br />
Se se instala nun AVD este ten que ter unha imaxe coa versión Google API como está comentado [http://manuais.iessanclemente.net/index.php/PDM_Avanzado_GoogleMaps#Aclaraci.C3.B3n_sobre_o_dispositivo_virtual_android_.28AVD.29 neste enlace]. Está probada nun Google Map API 21.<br />
<br />
<br />
O proxecto Android inicial baleiro da aplicación está na plataforma Platega e no seguinte enlace: [[Media:]] (''Por agora dispoñible só na plataforma Platega ou Mestre do IES San Clemente'')<br />
<br />
<br />
Cando se importa o proxecto hai que resolver unha referencia á librería 'android-support-v7-appcompat', porque está cun sdk-mínimo inferior da API 16.<br />
<br />
Para facelo:<br />
<br />
<gallery caption="Resolver referencia errónea" widths="300" heights="300px" perrow="2"><br />
Image:PDM_Avanzada_Aplicacion_17.JPG| Debemos ir ás propiedades do proxecto importado.<br />
Image:PDM_Avanzada_Aplicacion_18.jpg| Debemos escoller na parte esquerda a opción Android e na parte dereita a versión API 21 e na parte baixa (isto só é necesario se hai unha cruz vermella) premer '''Remove''' e despois engadila, premendo Add.<br />
</gallery><br />
<br />
<br />
Se non está dita librería ('android-support-v7-appcompat') no voso proxecto:<br />
<gallery caption="Resolver referencia errónea" widths="300" heights="200px" perrow="2"><br />
Image:PDM_Avanzada_Aplicacion_19.jpg| Primeiro descargar o Android Support Library dende o SDK Manager.<br />
Image:PDM_Avanzada_Aplicacion_20.jpg| Escoller a opción de menú File => Import de Eclipse e escoller a opción Existing Android Code into...<br />
Image:PDM_Avanzada_Aplicacion_21.jpg| Prememos o botón de Browse e navegamos ata o SDK/Extras/Android/Support/v7/appcompat/.<br />
Image:PDM_Avanzada_Aplicacion_22.jpg| Facemos check na opción 'Copy proyect...' e prememos o botón de Finish.<br />
</gallery><br />
<br />
Se aparece unha cruz vermella na librería hai que ir ás propiedades (botón dereito sobre a librería => properties), e na sección Android escoller como Proyect Build Target a versión de Android 5.0.1 (API 21).<br />
<br />
Facer un Clean de todos os proxectos (opción de menú Proyect => Clean de Eclipse).<br />
<br />
<br />
<br />
<br />
<br />
Comentar que o alumno ten total liberdade para modificar a funcionalidade e aparencia da aplicación así como o SDK mínimo, con tal que implemente as funcionalidades correspondentes de cada unidade didáctica.<br />
<br />
Agora explicaremos o funcionamento.<br />
<br />
==Obxectivo da práctica==<br />
<br />
O obxectivo da aplicación é ter un diario de viaxe no que gardar os lugares que visitamos.<br />
Dentro de cada lugar podemos:<br />
<br />
* Gardar fotos.<br />
* Gardar coordenadas GPS. Por exemplo, se facemos unha ruta andando podemos gardar os puntos máis interesantes da mesma.<br />
* Gardar audios gravados (e reproducilos).<br />
<br />
Tamén podemos visualizar un mapa de Google Map unindo mediante liñas rectas os puntos GPS que teña rexistrado un lugar e ademais amosa a posición actual do usuario.<br />
<br />
==Pantallas==<br />
<br />
===Pantalla de presentación===<br />
<br />
<u>Nome da clase no proxecto entregado</u>: Presentacion.java<br />
<br />
Pantalla na que aparece unha animación e unha música.<br />
<br />
Debemos premer o botón 'Adiante'. Esta pantalla está totalmente feita.<br />
<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_1.JPG|400px|center]]<br />
<br />
<br />
<br />
===Pantalla Principal===<br />
<br />
<u>Nome da clase no proxecto entregado</u>: Principal.java<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_2.JPG|400px|center]]<br />
<br />
Permite ir ás diferentes pantallas que conforman a aplicación e que ten na parte superior dúas opcións de menú:<br />
<br />
:* Opción de menú Descargar: Descargar un arquivo XML dende Internet: [[Media:Platega_pdm_rutas.xml]]<br />
<br />
::: Dito arquivo analízase e engádense os lugares á base de datos.<br />
<br />
:* Opción de menú Preferencias: Indicamos a coordenada (latitude e lonxitude) na que queremos que nos situemos no mapa cando o abramos. Ten que estar a opción de checkbox activada. En caso contrario situarase na última posición coñecida, ata recibir nova información polo GPS. Usamos unha pantalla de preferencias.<br />
<br />
::<u>Nome da clase no proxecto entregado</u>: /res/xml/pantalla_preferencias.xml<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_3.JPG|300px|center]]<br />
<br />
O alumno terá que implementar a pantalla de preferencias e programar a súa funcionalidade na pantalla do mapa (XestionMapa.java).<br />
<br />
===Pantalla Alta Lugar===<br />
<br />
<u>Nome da clase no proxecto entregado</u>: AltaLugar.java<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_4.JPG|300px|center]]<br />
<br />
<br />
Pantalla que da de alta un novo lugar na base de datos.<br />
<br />
Os campos necesarios son o nome do lugar e unha descrición.<br />
<br />
Unha vez prememos o botón de alta, debemos engadir á base de datos o lugar. <br />
<br />
Ao engadilo:<br />
* Obteremos o identificador do lugar (clave autonumérica) que teremos que pasar no Intent á seguinte pantalla (AltaRecordos.java) xunto co nome do lugar.<br />
* Creamos os seguintes cartafoles:<br />
:* /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/IMAXES => Onde se gardarán as imaxes.<br />
:* /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/AUDIOS => Onde se gardarán os audios.<br />
<br />
===Pantalla Alta Recordos===<br />
<br />
<u>Nome da clase no proxecto entregado</u>: AltaRecordos.java<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_10.JPG|400px|center]]<br />
<br />
<br />
A esta pantalla podemos vir dende a pantalla 'Lista Lugares' ou dende a pantalla 'Alta Lugar'. As dúas mandarán no Intent o id do lugar e o nome. <br />
<br />
O obxectivo desta pantalla é a de gardar as fotos / audio / coordenadas GPS asociados ó lugar.<br />
<br />
Na parte inferior (en forma de botóns) temos todas esas opcións.<br />
<br />
* Ó gravar un audio se gardará en /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/AUDIOS e se refrescará a lista de audios.<br />
* Ó obter unha foto se gardará en /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/IMAXES e se refrescará o horizontalScrollView (control que visualiza as imaxes).<br />
* Ó gravar unha coordenada GPS se engadirá a lista de coordenadas e a base de datos. O envío de coordenadas 'falsas' de GPS está explicado na [http://manuais.iessanclemente.net/index.php/PDM_Avanzado_Xeolocalizaci%C3%B3n#Env.C3.ADo_de_coordenadas_GPS_.C3.B3_dispositivo Unidade de Xeolocalización].<br />
<br />
===Pantalla Lista Lugares===<br />
<br />
<u>Nome da clase no proxecto entregado</u>: ListaLugares.java<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_11.JPG|400px|center]]<br />
<br />
<br />
Aparecen nunha lista a lista de lugares da base de datos.<br />
<br />
<br />
Ó manter premido sobre un lugar aparece o seguinte menú emerxente (/res/menu/menulistalugares.xml):<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_12.JPG|300px|center]]<br />
<br />
<br />
* Detalle lugar: Volvemos á pantalla de 'Alta Recordos' amosando os datos do lugar escollido.<br />
* Mapa lugar: Aparece un mapa de google map onde, se está activado o GPS, aparece unha icona indicando o nosa posición e ademais aparecen unidos os puntos GPS rexistrados para ese lugar.<br />
* Borrar lugar: Dá de baixa o lugar seleccionado. Bórrao da base de datos e da SD externa (/SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR).<br />
<br />
===Pantalla Mapa Lugar===<br />
<br />
<u>Nome da clase no proxecto entregado</u>: XestionMapa.java<br />
<br />
[[Imagen:PDM_Avanzada_Aplicacion_16.JPG|400px|center]]<br />
<br />
Aparece un mapa de google map onde, se está activado o GPS, aparece unha icona indicando o nosa posición e ademais aparecen unidos os puntos GPS rexistrados para ese lugar.<br />
<br />
<br />
<br />
==Base de datos==<br />
<br />
A base de datos xa se atopa creada no cartafol /assets/ do proxecto.<br />
<br />
O alumno terá que (explicación dada na unidade de Datos Persistentes) copiar, sempre que non exista, dita base de datos ó cartafol /data/data/nome_paquete/databases/. Isto se fará na activity Principal.<br />
<br />
A base de datos consta das seguintes táboas en SQL:<br />
<br />
'''Táboa LUGARES:'''<br />
<syntaxhighlight lang="java" line enclose="div" highlight="" ><br />
CREATE TABLE LUGARES ( <br />
_id INTEGER PRIMARY KEY ASC AUTOINCREMENT,<br />
nome VARCHAR( 200 ) NOT NULL,<br />
descripcion VARCHAR( 800 ) <br />
);<br />
<br />
</syntaxhighlight> <br />
<br />
<br />
'''Táboa COORDGPS:'''<br />
<syntaxhighlight lang="java" line enclose="div" highlight="" ><br />
CREATE TABLE COORDGPS ( <br />
_id INTEGER PRIMARY KEY AUTOINCREMENT,<br />
latitude REAL,<br />
lonxitude REAL,<br />
_id_lugar INTEGER REFERENCES lugares ( _id ) ON DELETE CASCADE<br />
ON UPDATE CASCADE <br />
);<br />
</syntaxhighlight> <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2014).</div>Carrion