You are on page 1of 97

kINCIICS DL ANDkCID

AC1IVI1ILS, VILWS & LACU1S


Ing. LLANDkC ILCkL2 AkIS1I28AL
lxexpxe[gmall.com
learlsuzabal[admon.unla[c.edu.co
[lxexpxe
lnS1ALA8 Suk Anu8Clu
Ll luL de desarrollo Lcllpse, Suk de Androld y Avu
Manager se pueden descargar de la slgulenLe pglna
web como un paqueLe comprlmldo.
hup://developer.androld.com/sdk/lndex.hLml

una vez descargado y descomprlmldo procedemos a
lnsLalar los paqueLes necesarlos. 8ecordar la ublcacln
del Suk.
lnS1ALA8 Suk Anu8Clu
Ls convenlenLe manLener acLuallzados los paqueLes del Suk manager asl como el luL.
ara acLuallzar el luL (Lcllpse):
1. Pelp -> lnsLall new Soware

hups://Jl-ssl.qooqle.com/ooJtolJ/ecllpse/
lnS1ALA8 Suk Anu8Clu
lnS1ALA8 Suk Anu8Clu
La recomendacln de paqueLes que deben ser descargados es:
8equerldos:
Androld Suk 1ools (ManLenerlo acLuallzado)
Androld Suk lauorm-Lools
Suk lauorm (Se debe descargar al menos una plaLaforma para poder compllar la apllcacln)
Se recomlenda descargar la uluma versln de Androld (Androld 4.3 Al18 hasLa esLe momenLo
SL/13) y la versln ms ba[a en la cual se planea desarrollar (Androld 2.2 Al8 Androld 2.3.3
Al10)
8ecomendados:
SysLem lmage (Se recomlenda descargar lmgenes de slsLema de Lodas las verslones de
Androld para probar las apllcaclones)
Androld SupporL Llbrary
Coogle uS8 urlver
Suk Samples (Cdlgo fuenLe de e[emplos. uescargar solo los de las Als descargadas para ser
soporLadas)
Coogle Als
Coogle lay Servlces
Iuente: hup:]]deve|oper.andro|d.com]sdk]|nsta|||ng]add|ng-packages.htm|
C8LA8 un Avu
(Anu8Clu vl81uAL uLvlCL)
un Avu es una conguracln de dlsposluvo para el emulador de Androld que permlLe
modelar dlferenLes conguraclones de dlsposluvos Androld. ara crear un Avu se debe
lnlclar el Avu Manager en lnlclo->1odos los rogramas->Androld Suk 1ools->Avu Manager
o desde Lcllpse en Wlndow->Avu Manager
C8LA8 un Avu
(Anu8Clu vl81uAL uLvlCL)
C8LA8 un Avu
(Anu8Clu vl81uAL uLvlCL)
Se pueden crear LanLos Avu como desee para probar sus apllcaclones en dlferenLes
conguraclones de equlpos. Se recomlenda probar las apps en Lodos los nlveles de Al
mayores al Al ob[euvo de la apllcacln desarrollada.

Al crear los Avu, se les da un nombre, plaLaforma ob[euvo, Lamano de Lar[eLa Su y un
skln.
1amblen se puede adlclonar caracLerlsucas de hardware especlco del dlsposluvo
emulado dando cllck en el boLn new. y selecclonando la caracLerlsuca.

Asegurese de denlr un ob[euvo para su Avu que sausfaga las caracLerlsucas del
dlsposluvo para el cual se consLruye la apllcacln (La plaLaforma ob[euvo [dlsposluvo
real] debe Lener un nlvel de Al lgual o mayor que el nlvel de Al con el cual se
complla la app)

8LCCuLS A8A CCnS18uCClCn uL
ALlCAClCnLS
Acnv|ty Componente IU que corresponde
np|camente a una panta||a.
Intentkece|ver kesponde a nonhcac|ones (1r|gger) o
camb|os de estado. uede despertar un
proceso.
Serv|ce 1area s|n IU que se e[ecuta en "8ackground"
Contentrov|der erm|te que |as ap||cac|ones compartan
datos
Anu8Clu A
AcuvlLy
AcuvlLy
lnLenL
Servlce
lnLenL
ConLenLrovlder
lnLenL
u8
AC1lvluAu (AC1lvl1?)
una acuvldad es un componenLe de la apllcacln que provee
una panLalla que se muesLra en el dlsposluvo para que el
usuarlo pueda lnLeracLuar para hacer algo como marcar un
Lelefono, Lomar una foLo, envlar un e-mall o ver un mapa.
hup: //devel oper . andr ol d. com/gul de/componenL s/
acuvlues.hLml
ara qulenes hayan programado en !avaML, es slmllar a un
ob[eLo ulsplayable como un formularlo (lorm), llsLa (LlsL), Ca[a
de LexLo (1exL8ox), AlerLa (AlerL) o Canvas.
AC1lvluAu (AC1lvl1?)
A dlferencla de !ava donde se lmporLan los
paqueLes y slmplemenLe se crea un ob[eLo del
upo de panLalla que se desea mosLrar, para
Androld se debe crear una clase que exuenda
(herede) de la clase base AcuvlLy por cada
panLalla que posea la apllcacln.
AC1lvluAu (AC1lvl1?)
Cuando se abre una nueva panLal l a
(acuvldad), la anLerlor queda pausada y
puesLa en una plla donde la uluma en enLrar
ser la prlmera en sallr.
ClCLC uL vluA uL unA AC1lvluAu
Aun no exlsLe

$
luenLe: hup://marakana.com/bookshelf/maln_bulldlng_blocks_LuLorlal/acuvlLy_llfecycle.hLml
Cesuonadas x AcuvlLyManager
AcuvlLyManager la dlrlge
A Lraves de sus esLados
Como desarrolladores
uecldlmos que pasa en
Las Lranslclones
ln1L8lAZ uL uSuA8lC (ul)
La lnLerfaz de usuarlo se dene en una archlvo xML
locallzado en la carpeLa res/layouL.
Acnv|ty_ma|n.xm|
<ke|anveLayout xm|ns:andro|d=!"#$%&&'(")*+',+-./01.,(0*&+$2&/)'&+-./01.!
xm|ns:too|s=!"#$%&&'(")*+',+-./01.,(0*&4005'!
andro|d:|ayout_w|dth=!*+4("6$+/)-4!
andro|d:|ayout_he|ght=!*+4("6$+/)-4! 7

<1extV|ew
andro|d:|ayout_w|dth=!8/+$6(0-4)-4!
andro|d:|ayout_he|ght=!8/+$6(0-4)-4!
andro|d:|ayout_centernor|zonta|=!4/9)!
andro|d:|ayout_centerVernca|=!4/9)!
andro|d:padd|ng=!:.1*)-&$+..1-;6*).19*!
andro|d:text=!:'4/1-;&")550680/5.!
too|s:context=!,<+1-=(>?14@! &7
<]ke|anveLayout
ln1L8lAZ uL uSuA8lC (ul)
Ln uempo de e[ecucln, la lu se carga en el
mane[ador de evenLos onCreaLe() en la clase
!ava de la Acuvldad usando el meLodo
seLConLenLvlew() de la clase AcuvlLy.
MalnAcuvlLy.[ava

QCverr|de
pub||c vo|d onCreate(8und|e savedInstanceState) {
super.onCreate(savedInstanceState),
setContentV|ew(k.|ayout.+(>?14@6*+1-AB
}
AndroldManlfesL.xml
LsLe archlvo es una descrlpcln de la apllcacln para que sea
conoclda en el mundo exLerlor (Ll slsLema operauvo desuno).
Ln esLe archlvo se reglsLran las Acuvldades, los lnLenLs para
las Acuvldades, capas de comunlcacln y permlsos.
Androld Lssenuals (Chrls Paseman)
AC1lvl1?
Andro|dMan|fest.xm|

<manlfesL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
package="com.bello.ooJtolJ"
androld:verslonCode="1"
androld:verslonname="1.0" >

<uses-sdk
androld:mlnSdkverslon="8"
androld:LargeLSdkverslon="15" />

<appllcauon
androld:lcon="Jtowoble/lc_looocbet"
androld:label="sttloq/opp_oome"
androld:Lheme="style/App1beme" >
<acuvlLy
androld:name=".nelloAcuvlty"
androld:label="sttloq/utle_ocuvlty_bello" >
<lnLenL-lLer>
<acuon androld:name="ooJtolJ.loteot.ocuoo.MAlN" />

<caLegory androld:name="ooJtolJ.loteot.coteqoty.lAuNcnk" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>

</manlfesL>
ln1L8lAZ uL uSuA8lC (ul)
usualmenLe es ms fcll consLrulr la lu
modlcando el archlvo .xml, pero en
ocaslones se neceslLar hacerlo en uempo
de e[ecucln por medlo de cdlgo
modlcando el archlvo .[ava
vlLW
Son ob[eLos herederos de la clase androld.vlew.vlew
conLenldos en una Acuvldad y que uenen una
aparlencla en panLalla. L[emplos de esLos son:
1exLvlew
LdlL1exL
8uuon
lmage8uuon
Check8ox
1oggle8uuon
8adlo8uuon
8adloCroup
1exLvlew
Los 1exLvlew son euqueLas en las
cuales se muesLra un LexLo [o,
modlcable solo por soware.
1exLvlew
<8elauveLayouL
mlns:androld="hup://schemas.androld.com/apk/res/androld"
xmlns:Lools="hup://schemas.androld.com/Lools"
androld:layouL_wldLh="maLch_parenL"
androld:layouL_helghL="maLch_parenL" >

<1exLvlew
androld:layouL_wldLh="wrap_conLenL"
androld:layouL_helghL="wrap_conLenL"
androld:layouL_cenLerPorlzonLal="Lrue"
androld:layouL_cenLerverucal="Lrue"
androld:paddlng="[dlmen/paddlng_medlum"
androld:LexL="[sLrlng/hello_world"
Lools:conLexL=".PelloAcuvlLy" />

</8elauveLayouL>
LA?Cu1
uene cmo se mosLrarn los elemenLos de la lnLerfaz
grca. Ll uso adecuado de un LayouL permlur que la
apllcacln se vlsuallce me[or Lenlendo en cuenLa que se
esL Lraba[ando sobre panLallas de Lamano reducldo.
LsLos son un upo de vlewCroup que permlLe conLener
oLros ob[eLos vlew o vlewCroup.
LlnearLayouL
AbsoluLeLayouL
1ableLayouL
8elauveLayouL
lrameLayouL
Scrollvlew
LlnearLayouL
LsLe upo de LayouL ublca los componenLes de
forma llneal (uno Lras oLro en las o
col umnas). Su orl enLacl n puede ser
horlzonLal o verucal.
Pello Androld
Pello Androld
Pello Androld
Pello Androld
Pello Androld
Pello Androld
Pello Androld
PLLLC Anu8Clu!
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL=nello wotlJ!" />

</LlnearLayouL>
AnLes que nada, el proyecLo por defecLo se encuenLra con un
elemenLo rooL 8elauveLayouL, camblemos esLo por LlnearLayouL.

Aqul vemos el ob[eLo vlew con el LexLo Pello world!" y aunque la
orlenLacln se ha esLablecldo como horlzonLal, no se aprecla dlcha
caracLerlsuca debldo a que solo hay un ob[eLo que mosLrar.
Agreguemos oLro elemenLo 1exLvlew denLo del mlsmo vlewCroup
LlnearLayouL y deber aparecer a su derecha.
PLLLC Anu8Clu!
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="botlzootol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nolo MooJo!" />

</LlnearLayouL>
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="botlzootol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nolo MooJo!" />

</LlnearLayouL>
PLLLC Anu8Clu!
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nolo MooJo!" />

</LlnearLayouL>
PLLLC Anu8Clu!
PLLLC Anu8Clu!
Se observa que e| e|emento root es
<L| nearLayout> y en | hay 2
1extV|ews. L| e|emento L|nearLayout
contro|a e| orden en e| cua| aparecen
|os V|ews conten|dos en |.
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nolo MooJo!" />

</LlnearLayouL>
LA?Cu1 & vlLW
Cada vlew y vlewCroup poseen un con[unLo de aLrlbuLos
comunes. Algunos apllcan solo para un upo especlco de LayouL
Aur|bute Descr|pnon
|ayout_w|dth Spec|hes the w|dth of the V|ew or V|ewGroup
|ayout_he|ght Spec|hes the he|ght of the V|ew or V|ewGroup
|ayout_marg|n1op Spec|hes extra space on the top s|de of the V|ew or V|ewGroup
|ayout_marg|n8ouom Spec|hes extra space on the bouom s|de of the V|ew or V|ewGroup
|ayout_marg|nLeh Spec|hes extra space on the |eh s|de of the V|ew or V|ewGroup
|ayout_marg|nk|ght Spec|hes extra space on the r|ght s|de of the V|ew or V|ewGroup
|ayout_grav|ty Spec|hes how ch||d V|ews are pos|noned
|ayout_we|ght
Spec|hes how much of the extra space |n the |ayout to be a||ocated to the
V|ew
|ayout_x Spec|hes the x-coord|nate of the V|ew or V|ewGroup
|ayout_y Spec|hes the y-coord|nate of the V|ew or V|ewGroup
LdlL1exL
Los LdlL1exL son campos de LexLo
lnLeracuvos en los cuales se puede
modlcar por Leclado el LexLo que
en ellos aparece.
LdlL1exL
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<LdlL1exL
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="sctlbo oo meosoje" />

</LlnearLayouL>
LA?Cu1 & vlLW
ALrlbuLos
Layout_w|dth: Lspeclca el ancho del vlew o vlewCroup
Layout_he|ght: Lspeclca el alLo del vlew o vlewCroup

Ln el e[emplo anLerlor esLos aLrlbuLos se esLablecleron como
wrap_conLenL" para ambos ob[eLos vlew. LsLe parmeLro
especlca que su Lamano no va a ocupar ms del necesarlo para
mosLrar el conLenldo (LexLo) LanLo a lo ancho (wldLh) como alLo
(helghL).

una varlanLe para esLe parmeLro es ll_parenL" o maLch_parenL"
el cual ocupa el ancho (wldLh) y/o alLo (helghL) de su padre que es el
LlnearLayouL en esLe caso.

<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<LdlL1exL
androld:layouL_wldLh=fll_poteou"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="sctlbo oo meosoje" />

</LlnearLayouL>
LdlL1exL
LdlL1exL
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<LdlL1exL
androld:layouL_wldLh=fll_poteot"
androld:layouL_helghL=fll_poteot"
androld:LexL="sctlbo oo meosoje" />

</LlnearLayouL>
LdlL1exL
Ln el e[emplo anLerlor usamos la propledad
androld:LexL para esLablecer el LexLo que aparece en el
componenLe. LsLe LexLo desaforLunadamenLe debe ser
borrado por el usuarlo para poder escrlblr algo dlsunLo.
una alLernauva es camblar esLa propledad por
androld:hlnL la cual esLablece un LexLo que se muesLra
al usuarlo (ms claro, como una marca de agua)
dndole un lndlclo de la lnformacln que debe
lngresar, una vez el usuarlo desee lngresar el LexLo que
desea, el esLablecldo lnlclalmenLe desaparece
auLomucamenLe.
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="nello wotlJ!" />

<LdlL1exL
androld:layouL_wldLh=fll_poteou"
androld:layouL_helghL="wtop_cooteot"
androld:hlnL="sctlbo oo meosoje" />

</LlnearLayouL>
LdlL1exL
LdlL1exL
Al pulsar una
Lecla (x)
1exLo ms claro 1exLo ms oscuro
8uuon
Los 8uuon son boLones o comandos
lnLeracuvos con los cuales el
usuarl o puede manl pul ar el
comporLamlenLo de la apllcacln,
ya sea para e[ecuLar alguna accln
como por e[emplo un camblo de
Acuvldad (panLalla).
8uuon
Los 8uuon poseen aLrlbuLos al lgual
que los ob[eLos 1exLvlew y LdlL1exL.
Ln esLe caso vamos a esLablecer un
Lamano [o en plxeles para esLe
elemenLo de 120px de ancho, en
cuanLo al alLo, esLe ser el necesarlo
para mosLrar su conLenldo.
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
ooJtolJ.text="nello wotlJ!" />

<LdlL1exL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:hlnL="sctlbo oo meosoje" />

<8uuon
androld:layouL_wldLh=120px"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="8oto" />
</LlnearLayouL>
8uuon
<LlnearLayouL
xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="motcb_poteot"
androld:layouL_helghL="motcb_poteot"
androld:orlenLauon="vetucol"
Lools:conLexL=".MoloAcuvlty" >

<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
ooJtolJ.text="nello wotlJ!" />

<LdlL1exL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:hlnL="sctlbo oo meosoje" />

<8uuon
androld:layouL_wldLh=120px"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="8oto" />
</LlnearLayouL>
8uuon
120 px
240 px
px=lxel
LA?Cu1 & vlLW
ALrlbuLos
Layout_grav|ty: Lspeclca como los vlew hl[os van ser poslclonados

LsLe aLrlbuLo permlLe poslclonar el ob[eLo vlew en dlferenLes lugares
de la panLalla, modlquemos el e[emplo anLerlor agregando esLe
parmeLro al ob[eLo 8uuon para que lo ublque en el cenLro de la
panLalla horlzonLalmenLe, para esLo el parmeLro ser
"ceotet_botlzootol. LsLe aLrlbuLo solo funclonar sl la orlenLacln
del LlnearLayouL ha sldo esLablecldo como verucal.

uC l1 ?Cu8SLLl!
PasLa el momenLo, se han vlsLo dos upos de LA?Cu1
(Llnear & AbsoluLe) y Lres upos de vlLWS (1exLvlew,
LdlL1exL & 8uuon). uesarrollar una panLalla de lnlclo de
sesln en la que se sollclLe username & assword, la
conLrasena debe ser de upo numerlco y deben vlsuallzarse
punLos (*) en lugar de los numeros. ueben haber dos
boLones, uno para sallr de la apllcacln (LxlL) y uno para
lnlclar sesln (Logln).
lovesuqot los ottlbotos lopot1ype y posswotJ poto el
Jlt1ext
lovesuqot el ottlboto loyoot_welqbt poto los Jos botooes

<LdlL1exL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</LlnearLayouL>
<LlnearLayouL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot">
<8uuon
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_welghL="0.5" />
<8uuon
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_welghL="0.5" />
</LlnearLayouL>
</LlnearLayouL>
<LlnearLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:orlenLauon="vetucol">
<LlnearLayouL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot" >
<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome" />

<LdlL1exL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="text" />
</LlnearLayouL>
<LlnearLayouL
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot" >
<1exLvlew
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ />
uC l1 ?Cu8SLLl!
1ableLayouL
Ll 1ableLayouL agrupa los vlews en las y
columnas. Cada la se puede adlclonar usando
el elemenLo <1able8ow> y cada una de ellas
puede conLener uno o mas vlews. or cada
vlew que se adlclone a una la, se crear una
nueva columna, o sea que cada vlew ocupa
una celda de la Labla. Ll ancho de cada
columna queda enLonces deLermlnado por el
elemenLo (vlew/celda) ms grande.
Check8ox
LsLe upo de vlew es un elemenLo de chequeo
que puede Lomar solo dos esLados (checked/
unchecked) o en su defecLo verdadero/falso. Ls
muy uullzado en llsLas de seleccln muluple.
osee aLrlbuLos al lgual que los vlsLos en vlews
anLerlores como layouL_helghL layouL_wldLh,
pero adlclonalmenLe, uno que esLablece su
esLado lnlclal: checked que reclbe en forma de
sLrlng Lrue" sl se desea que lnlcle selecclonado.
Apllcacln
Conunuando con el e[emplo anLerlor, se
modlcar el LayouL de la panLalla de lnlclo de
sesln a 1ableLayouL el cual conLendr 4 las,
las dos prlmeras para username y assword,
la Lercera para un Check8ox que permlLa ver o
no el assword dlglLado y la uluma para los
dos boLones.
1ableLayouL
<1ableLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >

<1able8ow>
<1exLvlew
androld:layouL_wldLh="120Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[[" />

<LdlL1exL
androld:layouL_wldLh="200Jp"
androld:lnpuL1ype="text" />
</1able8ow>
<1able8ow>
<1exLvlew
androld:LexL="losswotJ. "
androld:LexLColor="#[[["/>
<LdlL1exL
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</1able8ow>

<1able8ow>
<1exLvlew />
<Check8ox
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[[" />
</1able8ow>
<1able8ow>
<8uuon
androld:LexL="xlt" />
<8uuon
androld:LexL="loqlo" />
</1able8ow>
</1ableLayouL>
1ableLayouL
<1ableLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >

<1able8ow>
<1exLvlew
androld:layouL_wldLh="120Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[[" />

<LdlL1exL
androld:layouL_wldLh="200Jp"
androld:lnpuL1ype="text" />
</1able8ow>
<1able8ow>
<1exLvlew
androld:LexL="losswotJ. "
androld:LexLColor="#[[["/>
<LdlL1exL
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</1able8ow>

<1able8ow>
<1exLvlew />
<Check8ox
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[[" />
</1able8ow>
<1able8ow>
<8uuon
androld:LexL="xlt" />
<8uuon
androld:LexL="loqlo" />
</1able8ow>
</1ableLayouL>
1ableLayouL
<1able8ow>
<1exLvlew />
<Check8ox
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[[" />
</1able8ow>
<1able8ow>
<8uuon
androld:LexL="xlt" />
<8uuon
androld:LexL="loqlo" />
</1able8ow>
</1ableLayouL>
<1ableLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >

<1able8ow>
<1exLvlew
androld:layouL_wldLh="120Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[[" />

<LdlL1exL
androld:layouL_wldLh="200Jp"
androld:lnpuL1ype="text" />
</1able8ow>
<1able8ow>
<1exLvlew
androld:LexL="losswotJ. "
androld:LexLColor="#[[["/>
<LdlL1exL
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</1able8ow>

1ableLayouL
<1able8ow>
<1exLvlew />
<Check8ox
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[[" />
</1able8ow>
<1able8ow>
<8uuon
androld:LexL="xlt" />
<8uuon
androld:LexL="loqlo" />
</1able8ow>
</1ableLayouL>
<1ableLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >

<1able8ow>
<1exLvlew
androld:layouL_wldLh="120Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[[" />

<LdlL1exL
androld:layouL_wldLh="200Jp"
androld:lnpuL1ype="text" />
</1able8ow>
<1able8ow>
<1exLvlew
androld:LexL="losswotJ. "
androld:LexLColor="#[[["/>
<LdlL1exL
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</1able8ow>

1ableLayouL
<1able8ow>
<1exLvlew />
<Check8ox
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[[" />
</1able8ow>
<1able8ow>
<8uuon
androld:LexL="xlt" />
<8uuon
androld:LexL="loqlo" />
</1able8ow>
</1ableLayouL>
<1ableLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >

<1able8ow>
<1exLvlew
androld:layouL_wldLh="120Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[[" />

<LdlL1exL
androld:layouL_wldLh="200Jp"
androld:lnpuL1ype="text" />
</1able8ow>
<1able8ow>
<1exLvlew
androld:LexL="losswotJ. "
androld:LexLColor="#[[["/>
<LdlL1exL
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</1able8ow>

1ableLayouL
<1able8ow>
<1exLvlew />
<Check8ox
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[[" />
</1able8ow>
<1able8ow>
<8uuon
androld:LexL="xlt" />
<8uuon
androld:LexL="loqlo" />
</1able8ow>
</1ableLayouL>
<1ableLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >

<1able8ow>
<1exLvlew
androld:layouL_wldLh="120Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[[" />

<LdlL1exL
androld:layouL_wldLh="200Jp"
androld:lnpuL1ype="text" />
</1able8ow>
<1able8ow>
<1exLvlew
androld:LexL="losswotJ. "
androld:LexLColor="#[[["/>
<LdlL1exL
androld:lnpuL1ype="oombet"
androld:password="ttoe"/>
</1able8ow>

1ableLayouL
PasLa el momenLo, nuesLras apllcaclones no
poseen nlngun upo de evenLo que permlLa
lnLeracLuar con vlews como 8uuons o en el
e[emplo anLerlor con el Check8ox que a pesar
de esLar selecclonado, no muesLra el
password. Ms adelanLe se le aslgnarn
acclones a esLos elemenLos.
lu
Los ob[eLos vlew pueden Lener aslgnado un lu
unlco que los ldenuque. La slnLaxls para crear un
nuevo ld denLro de una euqueLa xML es:
androld:ld=[+ld/nombrelu"

ara un 8uuon Ck podrla ser:

androld:ld=[+ld/bLnCk"

lu
Ll ob[eLo vlew puede ser ahora conocldo con ese lu
LanLo en el documenLo .xML como en el .!ava esLo
qulere declr que sl se desea modlcar alguna
propledad de un vlew como por e[emplo el 1exLo,
se puede hacer Lamblen programucamenLe.

Ll slmbolo (+) slgnlca que esLe es un nuevo
nombre de recurso que debe ser creado y
adlclonado al archlvo de recursos (8.[ava).

lu
Cuando un vlew ha sldo denldo en xML, esLe
puede ser referenclado por oLros componenLes
de la slgulenLe forma:

[ld/bLnCk"

lu
Se debe usar [+ la prlmera vez que se menclona el lu del
ob[eLo en el archlvo xML. or e[emplo: Sl se crea un
1extvlew con:
androld:ld=[+ld/LxLvwusername"
ms adelanLe se puede referenclar como:
[ld/LxLvwusername"
pero sl se referencla por un ob[eLo anLes de que sea
denldo, deber usarse en la referencla:
[+ld/LxLvwusername"
y ms adelanLe cuando sea creado su ld se denlr:
androld:ld= [ld/LxLvwusername"

lu
Los lu aunque son dados como cadenas de
caracLeres (5ttloqs), en realldad es referenclado
como un numero enLero.

Archlvo 8.[ava
publlc sLauc nal lnL bLnCk=0x7f00001
publlc sLauc nal lnL LxLvwusername=0x7f00000
8elauveLayouL
LsLe loyoot permlLe ublcar los vlews en
relacln con oLros. uebldo a que se neceslLa
referenclar oLros elemenLos para ublcar un
ob[eLo, es necesarlo que los vlews posean un
lu unlco.
8elauveLayouL
<8elauveLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >
<1exLvlew
androld:ld="-lJ/txtvwlOClN"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="1ype yoot osetoome ooJ posswotJ"
androld:LexLColor="#000000"
androld:background="#[[["
androld:layouL_allgnarenL1op="ttoe" />
<1exLvlew
androld:ld="-lJ/txtvwustNm"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/txtvwlOClN"/>
8elauveLayouL
<8elauveLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >
<1exLvlew
androld:ld="-lJ/txtvwlOClN"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="1ype yoot osetoome ooJ posswotJ"
androld:LexLColor="#000000"
androld:background="#[[["
androld:layouL_allgnarenL1op="ttoe" />
<1exLvlew
androld:ld="-lJ/txtvwustNm"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/txtvwlOClN"/>
8elauveLayouL
<8elauveLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >
<1exLvlew
androld:ld="-lJ/txtvwlOClN"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="1ype yoot osetoome ooJ posswotJ"
androld:LexLColor="#000000"
androld:background="#[[["
androld:layouL_allgnarenL1op="ttoe" />
<1exLvlew
androld:ld="-lJ/txtvwustNm"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/txtvwlOClN"/>
8elauveLayouL
<8elauveLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >
<1exLvlew
androld:ld="-lJ/txtvwlOClN"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="1ype yoot osetoome ooJ posswotJ"
androld:LexLColor="#000000"
androld:background="#[[["
androld:layouL_allgnarenL1op="ttoe" />
<1exLvlew
androld:ld="-lJ/txtvwustNm"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/txtvwlOClN"/>
8elauveLayouL
<8elauveLayouL xmlns:androld="bup.//scbemos.ooJtolJ.com/opk/tes/ooJtolJ"
xmlns:Lools="bup.//scbemos.ooJtolJ.com/tools"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="fll_poteot"
androld:background="#000000" >
<1exLvlew
androld:ld="-lJ/txtvwlOClN"
androld:layouL_wldLh="fll_poteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="1ype yoot osetoome ooJ posswotJ"
androld:LexLColor="#000000"
androld:background="#[[["
androld:layouL_allgnarenL1op="ttoe" />
<1exLvlew
androld:ld="-lJ/txtvwustNm"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="usetoome."
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/txtvwlOClN"/>
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtustNm"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwustNm"
androld:lnpuL1ype="text" />
<1exLvlew
androld:ld="-lJ/txtvwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ. "
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/eJt1xtustNm" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtustNm"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwustNm"
androld:lnpuL1ype="text" />
<1exLvlew
androld:ld="-lJ/txtvwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ. "
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/eJt1xtustNm" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtustNm"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwustNm"
androld:lnpuL1ype="text" />
<1exLvlew
androld:ld="-lJ/txtvwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ. "
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/eJt1xtustNm" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtustNm"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwustNm"
androld:lnpuL1ype="text" />
<1exLvlew
androld:ld="-lJ/txtvwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ. "
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/eJt1xtustNm" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtustNm"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwustNm"
androld:lnpuL1ype="text" />
<1exLvlew
androld:ld="-lJ/txtvwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ. "
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/eJt1xtustNm" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtustNm"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwustNm"
androld:lnpuL1ype="text" />
<1exLvlew
androld:ld="-lJ/txtvwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="losswotJ. "
androld:LexLColor="#[[["
androld:layouL_allgnarenLLe="ttoe"
androld:layouL_below="lJ/eJt1xtustNm" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtlsswJ"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwlsswJ" />
<Check8ox
androld:ld="-lJ/cbk8x5bwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[["
androld:layouL_allgnLe="lJ/eJt1xtlsswJ"
androld:layouL_below="lJ/eJt1xtlsswJ" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtlsswJ"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwlsswJ" />
<Check8ox
androld:ld="-lJ/cbk8x5bwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[["
androld:layouL_allgnLe="lJ/eJt1xtlsswJ"
androld:layouL_below="lJ/eJt1xtlsswJ" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtlsswJ"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwlsswJ" />
<Check8ox
androld:ld="-lJ/cbk8x5bwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[["
androld:layouL_allgnLe="lJ/eJt1xtlsswJ"
androld:layouL_below="lJ/eJt1xtlsswJ" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtlsswJ"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwlsswJ" />
<Check8ox
androld:ld="-lJ/cbk8x5bwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[["
androld:layouL_allgnLe="lJ/eJt1xtlsswJ"
androld:layouL_below="lJ/eJt1xtlsswJ" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtlsswJ"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwlsswJ" />
<Check8ox
androld:ld="-lJ/cbk8x5bwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[["
androld:layouL_allgnLe="lJ/eJt1xtlsswJ"
androld:layouL_below="lJ/eJt1xtlsswJ" />
8elauveLayouL
<LdlL1exL
androld:ld="-lJ/eJt1xtlsswJ"
androld:layouL_wldLh="200Jp"
androld:layouL_helghL="wtop_cooteot"
androld:lnpuL1ype="oombet"
androld:password="ttoe"
androld:layouL_allgnarenL8lghL="ttoe"
androld:layouL_allgn1op="lJ/txtvwlsswJ" />
<Check8ox
androld:ld="-lJ/cbk8x5bwlsswJ"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:checked="folse"
androld:LexL="5bow losswotJ"
androld:LexLColor="#[[["
androld:layouL_allgnLe="lJ/eJt1xtlsswJ"
androld:layouL_below="lJ/eJt1xtlsswJ" />
8elauveLayouL
<8uuon
androld:ld="-lJ/btoxlt"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_below="lJ/cbk8x5bwlsswJ"
androld:layouL_allgnLe="lJ/txtvwlsswJ" />
<8uuon
androld:ld="-lJ/btoloqlo"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_below=lJ/cbk8x5bwlsswJ"
androld:layouL_allgn8lghL="lJ/eJt1xtlsswJ" />
</8elauveLayouL>
8elauveLayouL
<8uuon
androld:ld="-lJ/btoxlt"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_below="lJ/cbk8x5bwlsswJ"
androld:layouL_allgnLe="lJ/txtvwlsswJ" />
<8uuon
androld:ld="-lJ/btoloqlo"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_below=lJ/cbk8x5bwlsswJ"
androld:layouL_allgn8lghL="lJ/eJt1xtlsswJ" />
</8elauveLayouL>
8elauveLayouL
<8uuon
androld:ld="-lJ/btoxlt"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_below="lJ/cbk8x5bwlsswJ"
androld:layouL_allgnLe="lJ/txtvwlsswJ" />
<8uuon
androld:ld="-lJ/btoloqlo"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_below=lJ/cbk8x5bwlsswJ"
androld:layouL_allgn8lghL="lJ/eJt1xtlsswJ" />
</8elauveLayouL>
8elauveLayouL
<8uuon
androld:ld="-lJ/btoxlt"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_below="lJ/cbk8x5bwlsswJ"
androld:layouL_allgnLe="lJ/txtvwlsswJ" />
<8uuon
androld:ld="-lJ/btoloqlo"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_below=lJ/cbk8x5bwlsswJ"
androld:layouL_allgn8lghL="lJ/eJt1xtlsswJ" />
</8elauveLayouL>
8elauveLayouL
<8uuon
androld:ld="-lJ/btoxlt"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_below="lJ/cbk8x5bwlsswJ"
androld:layouL_allgnLe="lJ/txtvwlsswJ" />
<8uuon
androld:ld="-lJ/btoloqlo"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_below=lJ/cbk8x5bwlsswJ"
androld:layouL_allgn8lghL="lJ/eJt1xtlsswJ" />
</8elauveLayouL>
8elauveLayouL
<8uuon
androld:ld="-lJ/btoxlt
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="xlt"
androld:layouL_below="lJ/cbk8x5bwlsswJ"
androld:layouL_allgnLe="lJ/txtvwlsswJ" />
<8uuon
androld:ld="-lJ/btoloqlo"
androld:layouL_wldLh="150Jp"
androld:layouL_helghL="wtop_cooteot"
androld:LexL="loqlo"
androld:layouL_below=lJ/cbk8x5bwlsswJ"
androld:layouL_allgn8lghL="lJ/eJt1xtlsswJ" />
</8elauveLayouL>
lmagevlew
LsLe vlew permlLe mosLrar una lmagen como
conLenldo de el. Las lmgenes deben enconLrase
en la ruLa /res/drawable (puede ser cualquler
carpeLa drawable-xdpl donde la x puede ser h-l-
m-xh). Ll nombre de la lmagen solo puede
conLener leLras a-z (mlnusculas), numeros (0-)
y el carcLer ( _ ). Ll slgulenLe fragmenLo de
cdlgo se adlclona anLes de cerrar la euqueLa </
8elauveLayouL>

8elauveLayouL
<lmagevlew
androld:src = "Jtowoble/booey_lock"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_cenLerPorlzonLal="ttoe"
androld:layouL_below="lJ/btoxlt" />
</8elauveLayouL>
8elauveLayouL
<lmagevlew
androld:src = "Jtowoble/booey_lock"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_cenLerPorlzonLal="ttoe"
androld:layouL_below="lJ/btoxlt" />
</8elauveLayouL>
8elauveLayouL
<lmagevlew
androld:src = "Jtowoble/booey_lock"
androld:layouL_wldLh="wtop_cooteot"
androld:layouL_helghL="wtop_cooteot"
androld:layouL_cenLerPorlzonLal="ttoe"
androld:layouL_below="lJ/btoxlt" />
</8elauveLayouL>
L!L8ClClC
uesarrollar una App con la slgulenLe aparlencla:
L!L8ClClC
uesarrollar una App con la slgulenLe aparlencla: