Press "Enter" to skip to content

GOTO 2016 • Efficient Android Layouts • Daniel Lew


Ciao a tutti
va bene, i microfoni funzionano così sì
benvenuto a questo discorso sull’efficienza
Layout Android se non mi hai mai incontrato
prima di fare lo sviluppatore Android
circa sette anni prima un’app di viaggio
compagnia quindi Expedia e quindi attualmente
a Trello come al solito la mia cosa no
va tutto bene intendo la mia presentazione
qui si sa è possibile fare clic per
impegnarsi a valutare le sessioni e chiedere
domande di cui vorrei pubblicamente
rispondere alle domande alla fine, se tu
chiedere loro in ogni caso in modo tale è di circa facciamo
parlare di layout Android efficienti e
quando stavo scrivendo quello che ho trovato
Ero davvero interessato a non era così
tanto l’efficienza in termini di
prestazioni ma l’ efficienza in termini
di leva che hai come sviluppatore
e così ho iniziato a pensare a questo proposito in
il modo in cui Archimede si riferiva a
come se i fulcri funzionassero dove se tu
dammi solo un posto adatto per sopportarlo
può spostare la terra e quindi è una specie di
il focus di questo discorso è come come
ottenere il massimo vantaggio come sviluppatore
perché un sacco di team di Android sono
abbastanza piccolo e ti viene chiesto di fare un
sacco di cose e quindi nel mio caso sarebbe
se mi dai un posto in piedi lo farò
ti scrivo un’app per Android e lo spero
che non mi stai in attesa di fare più
battute terribili per tutto questo tempo così non lo farò
capita quindi questo è davvero solo una specie di a
miscuglio di cose non c’è narrativa
quindi sto solo cercando di nascondere il fatto
Non ho transizione qui parliamo
su gruppi di vista in particolare picking
guarda i gruppi che vedono il gruppo sei tu
intenzione di utilizzare per qualsiasi layout particolare e
Penso che la cosa principale sia che il
più semplice è la visualizzazione del gruppo che puoi
farla franca generalmente meglio è
perché quelli più complessi richiedono a
molto più manutenzione e puoi correre
in molti più bug e così via
fine più alta delle cose direi probabilmente
layout relativi uno dei più complessi
il layout dei vincoli deve ancora essere visto ma
sembra che probabilmente sarà
più complesso nel layout relativo quando
è finalmente finito da qualche parte nel
al centro c’è il layout lineare e
poi laggiù in basso è il frame
layout che è uno dei miei preferiti
perché è così semplice
e ci sono molte altre opinioni
nel mezzo, ma questi sono i principali
elementi costitutivi per la maggior parte delle applicazioni
layout relativamente e vincolo loro
tipo di occupare lo stesso spazio e
Android adesso che è Bay
posizioni viste l’una rispetto all’altra
e relativelayout tipo limitato in
questo riguardo ma è quello che abbiamo avuto
dall’inizio dove è
il layout dei vincoli è nuovo e può fare come
tutte queste cose incredibili, ma c’è
alcuni problemi chiave con entrambi
oltre al fatto che sono abbastanza complessi
uno è che il layout relativo è equo
lento e quindi il problema con il vincolo
il layout è che è piuttosto alfa ish a
nel momento in cui non hanno ufficialmente
rilasciato ancora così c’è l’alfa
costruisci su Maven Central ma sai
alcune volte sono completamente cambiati
l’API in giro quindi non è necessariamente a
Pr pronto per la produzione, intendo che potresti
giocarci adesso e puoi usarlo
se vuoi ma finirai
con alcuni di questi problemi all’avanguardia
che finisci ma finisci quando sei
provando nuove tecnologie sperimentali
il layout lineare è fantastico, lo sai
impilare le viste verticalmente e
in orizzontale è possibile distribuire il
peso quindi questa è una vista semplice o simile
la vista le file sono impilate verticalmente
e poi ho anche distribuito il peso
Sono ugualmente tra quei due filatori
in realtà abbastanza ok con lineare nidificato
layout come un’opposizione relativa
layout e in realtà l’ ultima volta che ho detto
qualcuno questo questo è stato di gran lunga il
la più grande domanda che ho ricevuto è di tutti
venendo da me più tardi dicendo ma amo il mio
layout relativi che è tutto ciò che uso ero
detto poi che i layout lineari nidificati sono
le cose peggiori in esistenza e così io
Non posso credere che hai appena detto che così
per risolvere quella domanda che ero
andando ad essere sempre sulle sessioni
la cosa è che sono i layout lineari
a volte lento, quindi se si utilizza il layout
peso e li annidate piuttosto in profondità
allora possono diventare piuttosto lenti ma è così
solo una cosa a volte considerando che
la disposizione relativa dell’opposizione deve sempre
fare due passaggi è sempre lento quindi il
spero che la speranza sia alla fine
il layout dei vincoli sarà il nostro Salvatore e
come salvarci dalla situazione di simili
dover decidere tra loro due
ma nel frattempo penso davvero
la cosa più importante è concentrarsi
sulla profilazione quindi qualunque sia il tuo layout
finiscono proprio come il profilo di accensione
Rendering GPU e vedere se le cose sono
correre abbastanza veloce su qualunque test
dispositivo che stai usando si spera come
molto lento e se non lo hai mai fatto
profilo usato GPU rendering I highly
raccomandare googling e guardando
che cuz allora hai queste belle barre
questo ti mostra se lo sei o no
colpire 60 fotogrammi al secondo e che tipo
di cose stanno spendendo troppo tempo
se non lo fai ma in realtà ho parlato
su tutto ciò di cui posso parlare
layout del frame che è il mio layout preferito
nel mondo perché è così incredibilmente
semplice
tutto quello che posso fare è posizionare le cose sulla base di
i limiti genitore così è possibile
posizionare le cose all’interno del centro del
layout della cornice o puoi posizionare le cose
su una delle nove direzioni cardinali
aspettare
nove otto direzioni cardinali del
cornice layout di attesa mi appare che
giusto sì otto um così ma c’è molto
si può fare con questo si scopre che a
molti layout se vuoi solo avere
come dire una semplice barra di progresso nel
centro di alcuni grandi schermi come
questo è un layout di cornice che non è necessario
fare qualcosa di complicato con relativo
layout o what-have-you
è anche molto bello per essere un semplice
layout per visualizzazioni sovrapposte quindi se tu
bisogno di due vedute di essere in cima ad ogni
l’altro layout del frame è fantastico
contenitore per cui è anche un bene
cose come sfondi oggetto cliccabili
quindi se hai qualche immagine che riprende
una quantità molto piccola di spazio, ma tu
voglio avere un bel o simile multiplo
punti di vista che compongono una cosa sola
fai clic su è buono avere come una cornice
layout come genitore di quello che può
in realtà hanno come il rilevamento dei clic
in modo che quando si fa clic su di esso in realtà
sembra che qualcosa stia succedendo così a
buon esempio di questo come nel percorso
l’applicazione è la barra di notifica
nell’angolo in alto a destra, quindi questo è
sempre presente sullo schermo è a
layout a cornice singola e c’è un’icona
al suo interno quell’icona bianca è sempre
presente e poi se hai letto
messaggi che metterà quel piccolo rosso
cosa su di esso e così l’ icona bianca
centrato e l’icona rossa è in realtà
ancorato all’angolo in alto a destra ma
allora puoi usare un margine per
spingerlo in modo che non piaccia solo a Ram
contro i lati e poi sopra
tutto ciò che posso solo avere queste opinioni
essere posizionato in modo molto semplice e quindi percorso
uno sfondo oggetto cliccabile dietro quello
così quando in realtà clic su di esso
succede qualcosa un’altra cosa che mi piace
usare i layout del frame per quello che sono
chiamare i contenitori di commutazione così se ne hai
due stati diversi che si alternano
tra a volte a volte sei tu
basta avere una sola visione che tu
effettivamente cambiare a volte ho trovato
più pratico avere come più viste
che cambi tra e così frame
layout un buon modo per piacere di contenerne due
cose esattamente nello stesso punto e poi
alternare tra loro così un buon esempio di
quello e l’app per Android nel Trello
l’app è la vista dell’avatar, quindi è così
ogni volta che rappresenti un membro di a
carta o qualcosa del genere che puoi se
l’utente ha il proprio avatar impostato poi noi
voglio dimostrare che se non l’hanno mai fatto
una foto quindi vogliamo mostrarne la loro
iniziali e quindi è essenzialmente
scegliendo tra una visualizzazione di immagine o un testo
vista
versioni poco più fantasiose di ciò
ti permettono di disegnare per rendere un cerchio ma
fondamentalmente ti permette di alternare tra questi
due così l’ avatar di te fa apparire il
prossima cosa che voglio parlare, che è
vedi riutilizzare noi usiamo questa vista avatar
in tutto l’applicazione, quindi questi sono
solo tre schermi come la scheda Trello
un guaio con problemi aperti come alcuni
attività sul lato e non c’è
in realtà penso tre o quattro altro
posizioni utilizziamo una vista avatar all’interno
l’applicazione e quindi la domanda
diventa come posso riutilizzarlo in più
luoghi senza dover riscrivere il
codice ovunque perché sarebbe
un po ‘ stupido, quindi il modo più ovvio è
usare qualcosa chiamato e includerlo
se non l’hai mai visto prima dell’inserimento
tag ti consente di puntare a un diretto
layout e quindi è come se quel layout
era solo copia e incollato nel codice
proprio lì e non puoi modificare molto di
cosa stai includendo ma puoi modificare
uno qualsiasi dei parametri di layout, quindi questo è tutto
altre cose che iniziano con il layout
sottolineatura quindi è un bel modo di essere
in grado di includere qualcosa che potrebbe avere
stato abbinato genitore ma non lo fai abbastanza
voglio che sia alla fine, ma il problema
ecco che va bene l’XML
ogni singola posizione ma non ottieni
qualsiasi logica, quindi ora devo venire
su con un modo per poi applicare come trovare
queste viste particolari che erano nel
includi e quindi aggiungi la logica per
in realtà vincolante per la vista così
quello che effettivamente preferisco in questi giorni è
utilizzando una vista personalizzata e quindi con una personalizzazione
vista io chiamo invece di includere I
in realtà solo il riferimento alla vista
direttamente e quindi è necessario scrivere il
vista personalizzata vera e propria ma non lo è
molto difficile perché questa non è una consuetudine
vedere che è come fare un disegno personalizzato
proprio così sta solo prendendo il
luogo di ciò che sarebbe stato in questo
includi e così con questo avatar personalizzato
view Sto estendendo il layout del frame così sono
dicendo che il più in alto sarà un
il layout della cornice ricorda che sto commutando
tra i due stati ho un’immagine
visualizza in una visualizzazione testuale e quindi all’interno di
lo stesso costruttore in realtà
gonfia tutte le opinioni che sono
al di sotto quindi non ho bisogno di farlo
come genitore usando la vista Avatar non lo faccio
doversi preoccupare di cosa c’è dentro
sta gestendo tutto questo per me e poi io
può avere questo bel metodo di legatura dove
Prendo il mio oggetto membro e capire
se dovrei caricare un’icona o
caricamento tramite il testo quindi questo rende il mio
la vita molto più facile di una cosa degna di nota
anche se stai usando questo tipo di like
visualizzazione personalizzata imposta questo
questo è come una versione molto ondulata della mano di
come quello che sarebbe l’XML inclusa ma
se includi l’XML come questo, finisci
con una gerarchia di vista che sembra
questo si finisce con una vista avatar su
la parte superiore è una cornice e quindi
gonfia un altro layout del telaio che
quindi il testo visualizza una vista dell’immagine così
ovviamente come questo layout del fotogramma centrale
è inutile non abbiamo veramente bisogno la
Il controllo dei pelucchi in Android è particolarmente
dura quando tu quando fai questo
qualcosa come non ha motivo di vivere o
qualcosa del genere non ha motivo di farlo
esiste quindi vogliamo sbarazzarcene e
il modo in cui lo facciamo è attraverso a
layout gonfia o trucco che è
normalmente quando usi il layout
inflator ovunque lo vedrai
ci sarà un terzo parametro lì e
sarà falso e questo è perché la maggior parte
del tempo è quello che vuoi, ma dentro
questo caso particolare lo vuoi
essere vero, che è il default
e quando è vero quello che succede è quello
l’XML che viene gonfiato cerca di
allegare se stesso al gruppo di vista che tu
passato come secondo parametro in
questo caso è questo e poi nell’XML
se usi qualcosa chiamato unione
tag invece di un layout di cornice cosa
succede è cerca di unirli poi
viste nel gruppo di vista genitore senza
qualsiasi layout di frame interstitial e così via
finiscono con una gerarchia che tu
in realtà non voglio frame inutili
i layout implicano una terza visione specifica
un consiglio che dovevo fare è con
disegno personalizzato quindi è utile in
casi di te particolarmente complessi
può risparmiare un sacco di tempo ma è disegno
te stesso invece di cercare di capire
come piace cuneo queste viste in cosa
è quello che vuoi che assomigli
in viste normali quindi un buon esempio di
questo nell’app Trello è l’etichetta così
ci sono questi verdi e blu e rossi e
etichette gialle e viola che sono accese
queste carte così quando abbiamo avuto il primo
L’app di Trello era composta da sei colori
e quello era il più tu
potrebbe applicarsi a qualsiasi carta e chiunque fosse
lavorare su di esso nel corso della giornata non ha fatto
conoscere il disegno personalizzato e deciso
che quelli sarebbero solo sei punti di vista così
ciò significava che ogni singola carta poteva
potenzialmente hanno sei punti di vista gonfiati ma
poi più tardi il Trello ha cambiato tale
che ha permesso come qualsiasi numero di
etichette da disegnare in modo da poter finire
con questo simile scenario da incubo dove
ogni singola carta potrebbe avere dozzine
di etichetta
su di loro se qualcuno sta veramente impazzendo
e poi stavamo parlando di riciclaggio
Quelle viste diventa davvero lento e
se parli di mettere qualcosa come
questo su un tablet diventa davvero realtà
lento perché puoi vedere ancora più carte
e rende ancora più viste così
era molto più semplice rispetto a questo
prendere tutti quei punti di vista che erano
renderizzato e invece ne ha una personalizzata
vista che richiama come veramente semplice
forme quindi c’è una sorta di due passi per
e le visualizzazioni personalizzate erano molto
intimidendomi , ero molto
paura delle visualizzazioni personalizzate perché pensavo
sembravano davvero difficile ma in realtà
non lo sono e il primo passo è giusto
dicendo alla vista personalizzata quanto è grande
dovrebbe essere quello è quanto spazio è
bisogno di prendere perché ho la mia etichetta
guarda che è veramente bello ma nessuno
sa esattamente quanto spazio sta andando
prendi così è importante che tu sia usato
per dire a qualsiasi gruppo di visualizzazione genitore quanto
spazio necessario si scopre un sacco di
volte puoi saltare questo intero
passo completamente e il motivo per cui lo dico
è perché in qualsiasi vista è possibile specificare I
sai che voglio che questa vista sia 48 DP di
48 DP se risulta che la tua abitudine
la vista sarà sempre la stessa
dimensione come saltare completamente solo a
trovalo nel tuo XML e non ce l’hai
preoccuparsi di ciò in questo particolare
caso perché la dimensione varia in base a
il numero di etichette che dovevo scrivere il mio
propria misura e quindi un rapido suggerimento un rapido
modo di passare attraverso una misura che è
la firma del messaggio che viene chiamata
hai queste specifiche per la misura della larghezza e
specifica di altezza che era sorta di
all’inizio mi confonde, ma si trasforma
fuori che questi sono solo numeri interi imballati
quindi è un singolo intero che questi due
i parametri sostanzialmente prendono il posto di
quattro parametri che è quello con
modalità in dimensioni e una modalità altezza in dimensioni
quindi la dimensione è solo un valore di dimensione
la modalità però ti sta dicendo come
vuole che tu gestisca quel particolare
dimensione che è passata e ce ne sono tre
diverse specifiche di misura per la modalità uno
è esattamente ciò che significa la vista genitore
gruppo vuole che tu sia esattamente questa taglia
l’altro è al massimo, quindi accetta come
molto spazio possibile
e undefined significa che potresti definire
qualunque cosa mi occupi di te vorrebbe
questa situazione e così il tuo tipico
la misura è simile a questa
dove prendi e questo è solo per il
larghezza quindi si dovrebbe copiare lo stesso codice
per l’altezza in cui avresti afferrato la modalità
la dimensione se la misura spec
è esattamente che probabilmente vuoi semplicemente
imballare il pass indietro la dimensione che ha dato
tu non vuoi mentire alla vista
non ti piacerebbe rovinare il
gruppo di visualizzazione principale troppo o altro
potrebbe essere confuso altrimenti lo sai
calcolare quale sia la larghezza desiderata e
se le specifiche dello spirito sono al massimo, allora fai
sicuro che qualunque sia la larghezza desiderata
non più grande di quella dimensione altrimenti se
è indefinito
devi solo scegliere di prendere qualsiasi cosa
larghezza desiderata che vuoi poi una volta che hai
fatto questo sia per la larghezza che per il
altezza si è contrattualmente tenuto a
chiamare la dimensione della misura impostata per
dì al tuo punto di vista per cosa hai deciso
per la larghezza e l’ altezza perché
non è previsto alcun valore di ritorno per on
misura che devi solo chiamare
questo metodo alla fine è così
misurare quanto è grande la vista e il
il secondo è in pareggio e questo è carino
Semplicemente ti dà solo una tela e
disegni e quindi lascerò tutto
a te perché di cosa parlerò
tela questo non è un discorso su come
usa tela un’altra cosa degna
considerando è forse in alcuni casi voi
non hai davvero bisogno di una visualizzazione personalizzata
potrei scrivere solo la tua abitudine
disegnabile e il vantaggio qui è quello
allora potresti prendere questa abitudine scritta
codice e come applicarlo a qualsiasi altro
guarda così va bene se ti piace
qualche speciale sfondo personalizzato di sorta
in tal caso diventa semplicemente una misura
qualcosa come ottenere altezza intrinseca e
ottenere larghezza intrinseca su un drawable e
poi su draw diventa draw ma ancora Mike
Non voglio spendere troppo tempo su
questo è possibile cercare di più su di esso
più tardi raccomando caldamente zero
ha parlato del costo di un Android
drawable alcuni anni fa e io altamente
raccomandare che parlare se si vuole imparare
ne parleremo più avanti e lo sarò
postare anche queste diapositive se vuoi
ottenere i collegamenti
bene, Stiles, spostiamoci da
visualizzazioni
beh non è lontano dai punti di vista, ma parla
riguardo al tipo di un altro livello sopra le viste
quali sono gli stili quindi se tu se lo sei
applicando XML a una vista questa vista ha no
stile
non perché non lo è, ma perché
non ci sono tag di stile e poi se
tu hai uno stile tutto ciò che fa è che io sia
creando una risorsa di stile che ha
lo stesso attributo dentro di esso e poi
la vista stessa applica quindi quello stile
in cima a tutto ciò che effettivamente bene
in realtà gli stili sono stati applicati prima e
allora poi qualunque sia l’ altro attributo
applicato sopra ma essenzialmente
quindi nello stesso modo in cui lo sono
prendendo il layout XML XML e solo roba che
immergendolo in un gruppo di visualizzazione
Gli stili praticamente prendono un sacco di
attributi e li inserisce in una vista e
quindi dov’è questo utile è molto
efficiente quando hai bisogno di stile un mucchio
di alcuni ciò che chiamo semanticamente
viste identiche allo stesso modo e quindi ciò che
Intendo semanticamente identico è quello
ogni vista fa esattamente la stessa cosa in
la tua gerarchia ne è un buon esempio
è una calcolatrice perché in una calcolatrice
vuoi tutti questi pulsanti o almeno
come sai i numeri principali a
guarda lo stesso un altro modo per dirlo è
che tutte le viste in stile dovrebbero cambiare
al tempo stesso così ogni volta che si desidera modificare
qualcosa così se voglio cambiare il
dimensione del testo di uno di quei pulsanti miei
l’aspettativa è che tutti cambino
subito così che mi salva un intero pacchetto
di volta che vedo un sacco di gente anche se
me stesso in passato, specialmente abusando
stili in modi molto inefficienti
questo alla fine ti morde a lungo termine
e in un modo sono gli stili monouso in modo tale
hai una visione che fa riferimento a a
stile e quello stile è usato una sola volta
um mi sembra che sia solo un lavoro extra
non c’era bisogno di essere lì alcune persone
mi piace davvero separare tutto questo codice
ma come se fosse così facile da refactoring più tardi
e creare uno stile c’è anche a
opzione di refactoring in studio Android
che ti permette di fare questo
quindi non proprio necessario ma di più
importante è dove si hanno due punti di vista
che per coincidenza usano lo stesso
attributi quindi ho questi due testi
viste e dico oh guarda stanno usando
lo stesso colore del testo e la mano scalare del testo
bene userò uno stile qui, ma se tu
guarda l’IDS puoi dirlo
due significa qualcosa di molto diverso da
a vicenda si suppone che si tratti di un titolo
e uno è il corpo e quindi cosa succede
Suppongo che in seguito deciderò oh voglio
il titolo deve essere come un altro colore
bene se cambio il colore del titolo
ora che cambia anche incidentalmente il
corpo e così questo stile che era
dovrebbe essere a portata di mano è ora solo un
ostacolo perché è molto difficile
modificare questo stile senza averne
conseguenze indesiderate più tardi ho paragonato
questo a Java immagino di averne due
costanti uno è come il numero di
colonne che sto per mostrare e qualche griglia
e l’altro è un numero di tentativi
Farò in alcune richieste HTTP se si
fallisce e quindi penso che ah questi sono i
lo stesso valore che ho intenzione di ottimizzare questo
e ho una singola costante e questo è
problematico per due motivi uno è quello
tre è già una costante ma il
altro è che ho perso tutte le riunioni semantiche
questi ha incontrato qualcosa di molto diverso
se voglio aumentare il numero di
tentativi per HTTP improvvisamente ora ho
cambiato come appare anche la mia interfaccia utente
incidentalmente , questo è un errore
le persone possono fare con gli stili così
i temi sono una specie di stili simili
stili di steroidi che puoi applicare a
i temi delle viste individuali sono essenzialmente
cose che puoi applicare a più
viste contemporaneamente e così può essere come un
guarda il gruppo può essere un’attività
attività o può essere come l’ intero
applicazione che ti permette di applicare
anche gli stili predefiniti, quindi se vengo fuori
con voglio tutti i miei pulsanti per guardare
leggermente diverso lungo um attraverso il
app quindi non devo
senza temi dovrei andare a prendere
quello stile e in realtà lo aggiungo a tutti
il mio XML considerando che con temi posso dire di essere io
vorrei solo avere uno stile predefinito
per tutti i pulsanti e automaticamente
si gonfia per tutto e poi
l’ultima cosa pigra che ti aiuta
con almeno nel contesto del mio discorso
ti permette di configurare il sistema
creato visualizzazioni così se hai pop-up
Windows o barre degli strumenti o qualcosa del genere
il sistema crea e questo è uno in meno
cosa devi creare ma prima
il tema era prima che tu potessi tema su a
livello di vista c’erano molti problemi
con oh mi piacerebbe crearne un po ‘
Attribuisce questo effetto solo a questo
strano pop-up ma poi si rovina
un’altra parte della mia app ma è molto
utile per la configurazione proprio come le cose
quello è che il sistema lo creerà
ci sono tre modi per applicarlo che puoi
applicalo come ho detto al tutto
applicazione è possibile applicare alla legge
attività individuale se lo fai
finisce per ignorare ciò che è nel
applicazione e poi su di voi
può applicare ad una singola vista e
nel caso di vista finisce in realtà
sovrapponendo così puoi semplicemente sovrapporre come
alcune modifiche a singole viste
il tema e il punto di vista è molto molto
a portata di mano non so se qualcuno qui
ha lavorato ai tempi di holo probabilmente
ricorda che c’era un punto a ollare
punto luminoso con barra di azione scura e quello
era perché non c’era modo di tema
solo la parte della barra delle azioni sullo schermo
in modo diverso quindi hai dovuto dire in
tema voglio definire la maggior parte del
schermo per essere leggero ma voglio questo
parte di esso deve essere scuro mentre al giorno d’oggi
puoi dire che vorrei solo una luce
tema e poi Manny
applicare davvero un tema scuro alla barra degli strumenti
stesso così rende le cose molto più semplici
quindi in termini di tematiche altamente
raccomandare persone in cerca di app compat
che è una delle librerie di supporto
che Google mette fuori se non lo sei
già usando
tra le altre cose fa a theming a
molto più facile per una cosa che ti dà
materiale su tutti i dispositivi come quello è il
l’ultimo linguaggio di design di Google e
senza questo c’è molto sottile
differenze tra holo e materiale in
termini di spaziatura e anche in termini di
proprio come le metafore visive che
stanno usando e quindi è meglio che piaccia
è molto più facile iniziare da una
singola linea base e poi tema da
c’è un’altra cosa è che ti dà tutto
questi temi e stili di base così tu
potrebbe desiderare di sapere cambiare il
aspetto predefinito di tutti i pulsanti ma tu
non voglio dover andare davvero e
come definire uno stile che definisce ogni
attributo singolo che un pulsante deve
hai solo voglia di prendere quello principale
e modificarlo un po ‘ come aggiungere un
piccola imbottitura per tutti i tuoi pulsanti
e compat così app rende facile poi a
prendi lo stile del pulsante Compat e
estendetelo e quindi modificatelo
senza che diventi una sorta di a
incubo soprattutto tra holo e
materiale e l’altro terzo davvero
la cosa importante che abilita è quella
ti permette di visualizzare i pre tematici
lecca-lecca in XML e quello era uno dei miei
cose preferite perché aveva il lecca-lecca
questo vedeva il tema che sembrava davvero
bello ma io ero tipo oh ma non puoi ottenere
ha restituito in realtà sono riusciti a gestire
per tornare indietro fino a me
pensa qualche API che non dovresti nemmeno
stai usando più
Penso che siano undici persone dispiaciute chi sei
usando ancora il supporto per le app
undici così alcuni esempi di cose voi
può fare con i temi quello che ottiene
propagandato ovunque è il colore
tematiche quindi in questo caso invece di
dovendo usare singoli drawable per
tutto ciò che posso solo impostare i colori e
la maggior parte della maggior parte delle cose in
Android sarà solo ottenere colorato
automaticamente così BAM è come un vasto
spazzola ictus si può fare questi
sono alcuni esempi di come applicare
stili predefiniti quindi nel caso lo abbiate
per esempio, non l’ ho mai visto prima
la linea superiore definisce lo stile del pulsante
per l’intera applicazione in modo che ottenga
applicato a ogni pulsante l’oggetto spinner
lo stile è comodo perché piace cosa se io
voglio solo usare lo spinner integrato
riga di layout dell’articolo che piace Android
fornisce
ma voglio ancora modellarlo un po ‘
un po ‘posso usare usare quel testo qui
l’aspetto è bello perché poi il testo
l’aspetto può essere applicato alle visualizzazioni di testo e
allora puoi ancora applicare un altro stile
per di più un’altra cosa utile
può fare con i temi è che puoi impostare
su è possibile impostare gli attributi che sono
quindi fatto riferimento nel tuo XML così in questo
caso caso sfondo selezionabile che è
come il mio uno dei miei attributi preferiti se
ti riferisci ad esso con quel punto interrogativo
barra degli attributi anziché @
drawable consentono normalmente si usa allora
deriva quel valore dal tema
invece di andare direttamente così perché
è utile se ti capita di avere un?
app che supporta più temi IT
rende molto facile quindi scambiare lo scambio
tra questi valori ma più
importante come potrebbe avere il tuo sistema
idee multiple su cosa un oggetto selezionabile
lo sfondo è perché pre lollipop
non c’era nessuna increspatura che fosse
solo di solito solo un colore piatto
ti hai cambiato ogni volta che fai clic
qualcosa mentre post lecca-lecca vuoi
vuoi avere queste increspature per farlo
sembra davvero bello e quindi se usi un
sfondo oggetto selezionabile quindi il
il tema può automaticamente capire quale
uno vuole prendere bene io farò un
una breve pausa prima di andare avanti
la prossima sezione scusa, va bene
risorse quindi le risorse sono tutte note
delle cose che entrano nella tua app
non sono solo il puro codice Java e prima di me
posso parlare di risorse di cui voglio parlare
sulla configurazione del dispositivo, quindi se guardiamo
a questo screenshot c’è un intero
un sacco di cose che si possono derivare
su di esso in termini di configurazione
quindi per esempio posso dire che è dentro
orientamento verticale ha un’altezza
di 731 pixel indipendenti di densità è
ha una larghezza di 411 di essi
è un nexus 6p quindi ha una densità di
xxx hdpi sembra essere in inglese, giusto
ora il locale inglese così sta mostrando
English us e la sua versione 24 perché
sta funzionando come l’ultima e costruisce
quindi queste sono tutte cose che l’Android
sistema conosce il dispositivo e tu
puoi interrogarlo tutto manualmente da solo
se vuoi, ma in realtà con le risorse
puoi semplicemente selezionarlo
automaticamente e alcuni di questi pensano
alcuni di questi dispositivi cambieranno le cose
in tutto X
alcuni di loro non saranno così ritratto contro
paesaggio a meno che tu non stia bloccando il tuo
orientamento che può cambiare molto
rapidamente dove puoi cambiare il piccolo
La gente di Cal probabilmente non lo cambierà
spesso ma non possono cambiarlo mentre
le tue app in esecuzione e poi alcune cose
come la densità e ciò che funziona
la versione del sistema probabilmente non lo farà
stai cambiando mentre esegui il tuo
app quindi che tipo di cose fai
voglio variare su questo bene come il paesaggio
contro il ritratto penso sia un classico
esempio perché di solito presenta a
calcolano le diverse modalità di funzionamento
l’applicazione calcolatrice incorporata quando è in
il ritratto mostra solo quattro righe ma quando
ha più spazio per allungarlo
può mostrare alcuni dei più interessanti
le funzioni solo per impostazione predefinita sono a
molto facile si vuole averlo Trant
la tua app ha tradotto lingue diverse
hai appena selezionato un testo diverso
stringhe base alle impostazioni internazionali così sulla sul
sinistra è in inglese sulla destra è dentro
In giapponese puoi farcela
la larghezza dello schermo così sul telefono
la carta quando è aperta è abbastanza piccola
che decide solo di prenderne il pieno
larghezza mentre ad un certo punto se il
il dispositivo diventa abbastanza grande sembra solo
tipo di ridicolo averlo pieno
larghezza e così iniziamo a fare una pausa
punto in qualche momento con larghezza e
un altro esempio sarebbe come
i nostri risultati di ricerca ci piacciono
visualizzazione griglia scaglionata e ancora come sopra
l’ampio tablet non avrebbe senso
avere un’unica colonna ha senso
Mi piace riempirlo il più possibile
e così possiamo possiamo variare il numero di
colonne basate su questo e poi anche su
il cellulare che puoi vedere
come il primo risultato è un po ‘come piccolo
display della scheda piccola perché è a
dispositivo più piccolo mentre come sul
tablet più grande possiamo mostrare il bello come
grande rettangolo che sarebbe più bello se
che in realtà aveva uno sfondo ma
qualunque cosa tu potessi fare tutto questo
Codice Java come ho detto prima ma è a
molto più facile se si fa leva sul
sistema di qualificazione delle risorse e quello che il
sistema fa è ti fornisce definire
risorse alternative per diversi
configurazione del dispositivo e quindi in fase di esecuzione
Android sceglierà automaticamente il
risorsa corretta in base al dispositivo
configurazione in modo che passerà attraverso e
interrogare tutto e capire quale di
le risorse che hai definito rendono di più
senso nella situazione e così tu definisci
questo usando i nomi del
cartelle così nella directory delle risorse
se hai qualcosa che è solo il
predefinito
valori che significa che non ha risorse
qualificatori collegati ad esso è il
fallback di default in tutti i casi mentre if
fai un singolo – e poi una risorsa
Qualificatore quindi questo set questo ha
un qualificatore di risorse è triplo xhdpi
e puoi avere più qualificatori se
vuoi che tu possa effettivamente applicarne altrettanti
qualificatori come vuoi a
valore singolo anche se di solito non lo è
a portata di mano se lo fai per piacere a molti
valori diversi e un’altra cosa
degno di nota è che se lo hai
più qualificatori devono andare in a
ordine particolare in modo da cercare il
documentazione la documentazione ha questo
tavolo enorme di tutti i diversi
qualificazioni che puoi usare e che hai
metterli nell’ordine di quel tavolo
per Android per analizzare correttamente in modo che il
anche nella stessa pagina di documentazione
elenca l’algoritmo ma praticamente
è proprio come un processo di eliminazione
prova a trovare il più specifico
risorsa data la configurazione corrente
quindi immagino di iniziare con un certo valore e
Ho qualcosa con cui valori
il più piccolo il più piccolo con 600 DP il più piccolo
con significa che a prescindere
orientamento quale è la larghezza più piccola
che puoi avere per il
dispositivo che è utile per capire
un po ‘come la classe del dispositivo come
tablet contro telefono e deve anche
essere in verticale, quindi selezionare
da questo se entrambi sono veri ma
se risulta che uno o l’altro non lo è
vero allora inizierà a guardare per vedere
altre cose che possono eliminare quindi
si guarda forse per le s solo il singolo
SW 600 DP oh risulta non i telefoni
non si qualifica per quello quindi allora
Vedrò è il telefono in verticale e se
non si qualifica per quello quindi lo farà
riconsegna ai valori di base qui così
è per questo che è comodo avere un
valore predefinito per tutto il solo
cosa non hai davvero bisogno di un valore predefinito
il valore per è drawable perché il modo
che Android funzioni automaticamente
scala se non si ha qualcosa nel
directory giusta, quindi se solo ti piace
triple asset xhdpi e il tuo dispositivo
capita di essere mdpi sarà solo in scala
tutto ciò che non è eccezionale
prestazioni ragionevoli perché è necessario
fai tutto quel lavoro extra ma almeno tu
non preoccuparti di questo quando
stai sviluppando rapidamente così in termini di
utilizzando qualificatori di risorse nel corretto
modo quello che penso sia importante è quello di
pensa a queste risorse come codice in
in particolare a pensare a ciascuna risorsa
che stai inserendo da qualche parte come per
per qualche metodo funziona un metodo o
funzione e che il parametro è
determinato in base al dispositivo
configurazione quindi per esempio se tu
pensa a questo in termini di codice come
a sinistra il codice a sinistra non lo è
pazzo e stupido perché come avrei dovuto
scrivi una nuova funzione quadrata per numero
che voglio quadrare mentre quello su
il diritto ha questo parametro così tu vuoi
pensarlo più nei termini del
cose a destra così semplici
esempio che mi piace usare molto è
effettivamente lasciando il qualificatore di risorse
sistema determina una logica booleana per
me così questo è semplice dove io
fondamentalmente voglio solo sapere se lo è
in veranda o no si potrebbe interrogarlo
alcune risorse abbastanza facilmente, ma questo è
solo un esempio quindi potrei dire di
l’impostazione predefinita è portrait è false e quindi in
in particolare quando è ritratto, è così
vero e quindi posso ottenere questo booleano
valore ma questo è davvero utile se
ti piacciono più cose diverse
configurazioni in più modi
boolean potrebbe farlo funzionare può fare tutto
che quel calcolo per te non lo fai
devo pensarci un po ‘più classico
esempio è come usarlo per diversi
layout in modo da poter dire che sto andando
chiama set content view e io ho questi
tre diverse versioni del layout uno
quello è quello predefinito che compare in
orientamento orizzontale e uno che mostra
in verticale e ho fatto
questo scivolo molto prima che mi renda conto
molto improbabile che finisca davvero per sempre
senza che sia nel paesaggio o
ritratto dovresti avere un quadrato
schermo per quello ma fondamentalmente lo farà
selezionare quello giusto di questi, ma lo farebbe
sii più intelligente perché probabilmente lo farai
finire con questo sarà poli alla fine con alcuni
codice duplicato perché le probabilità sono
non c’è così tanto cambiamento
cambia tra ritratto e paesaggio
quindi è bello, allora, se puoi usarlo
codice riusare l’inclusione e quindi può
accendi solo quella parte del codice
questo cambia così ho il mio lineare
layout e all’interno di esso da qualche parte
c’è un inclusione e questo è il
polo che è l’unica parte che cambia
in base all’orientamento così ora posso avere un
singola attività principale e quindi posso avere
un layout che è quello predefinito e quindi
un layout che modifica solo su
ritratto lungo le stesse linee Let’s
diamo un’occhiata all’interno di ciò supponiamo
entrambi quelli includono hanno un textview
che dovrebbero essere belli
molto la stessa cosa ma anche se loro
davvero modificare è come ciò che il testo
la dimensione è ma è ancora una volta questo sembra gentile
di come uno spreco di avere due diversi
layout
se tutto quello che voglio veramente modificare è il
dimensione del testo così qui quello che posso fare è che posso
invia un riferimento a una dimensione e poi quello
la dimensione può essere quindi determinata in base
anche sulle qualificazioni e poi
per fare questo anche un ulteriore passo avanti
supponiamo di avere uno stile da qualche parte nel
applicazione che è lo stesso tipo di
cosa tutto ciò che è tutto ciò
modifica è la dimensione del testo, quindi posso ancora
questa è una dimensione ma ora questa
lo stile può essere applicato su tutto il
applicazione invece di applicarlo a
come quel trucchetto di dimensioni a uno solo
vista particolare così come in questo esempio
Mi piace un’attività principale in cima e
quindi per impostazione predefinita andrà a una sola inclusione
ma se capita di essere un ritratto lo farà
andare a una diversa includere sia di quelli
includere una textview che dovrebbe
essere apparentemente lo stesso tra entrambi e
quindi usano lo stesso stile e poi quello
stile basato sulla configurazione corrente
determina quale sia la dimensione del testo così da te
può davvero andare molto in profondità con questo e
scrivi pochissimo codice duplicato
tra tutti i tuoi layout, se così fosse
stai facendo sta cambiando le cose sulla base di
configurazione del dispositivo e a parte
questo è il motivo per cui ti parlo in generale
non dovrebbe ignorare le modifiche di configurazione su
Android è un principiante piuttosto comune
modo per aggirare il problema di come oh
Ho ruotato il mio telefono e poi la mia attività
è stato distrutto e non volevo questo
capita perché dove sono finiti tutti i miei dati
e poi qualcuno dice hey se solo tu
override config cambia tutto funziona
fuori e tutti i tuoi dati rimangono in giro
così ci sono due problemi con quella
è che non necessariamente ti aiuta
perché probabilmente solo leggi
modifiche di configurazione per l’orientamento simile
cambiamenti ma ci sono molti altri modi
che come la configurazione potrebbe cambiare
al volo ma per – significa che tu
bypassare completamente questo sistema e perché
stai praticamente dicendo ad Android
sistema di cui non mi preoccupo
è come questa è tutta questa risorsa
sistema di qualificazione è una parte importante del
motivo per cui quando si ruota il telefono
l’attività viene distrutta e
ricreato di nuovo perché quando tutto
si rigenera
perché vuole che ti ri-gonfia
tutto perché quando si gonfia
tutto qualcosa potrebbe essere cambiato
in base alla selezione di un layout diverso
tutti i drawable giusti quindi questo è vediamo
ciò quanto tempo buono va bene così
disegnabile è l’ultima sezione che voglio
parlare e voglio delineare un po ‘
uno scenario da incubo che puoi o meno
Non sono passato attraverso ho certamente
passato tante volte così immagina
Sto interagendo con il design
e mi mandano un modello di un nuovo
schermo e in particolare come questo
la schermata di accesso e volevano aggiungere
questo login con SSL cosa in fondo
quindi allora guardo questo e comincio
lavorando su di esso, ma poi dico al design
Ho bisogno di questo bene perché non sto bene
Non sono bravo in design o niente di me
ho bisogno che tu mi dia questo così come dico io
Okay, nessun problema quindi ti mandano
su un file zip lo si decomprime e si ottiene
questo file che è chissà quanto è grande
questo dovrebbe essere così che tu lo dica
design ok questo non è abbastanza ho bisogno di più
di questo come ho bisogno di uno in tutto il
diverse densità e design dice oh
certo che vadano a fare qualche ricerca e come
funziona e poi ti rimandano a
file come questo e uno zip che contiene
questo così ora hai tutte le risorse
di cui hai bisogno ma poi devi andare
attraverso e rinominare tutto e metterlo
nelle cartelle giuste e quindi importarlo
nel progetto è una specie di dolore
e questo è un vero dolore per ogni cosa
bene e poi il kicker in cima a tutto
di questo è che il design molto fine dice
in realtà voglio modificare il colore e
ecco qui un nuovo set di risorse e così
ora devi passare attraverso tutto questo
processo di nuovo ed è un dolore gigantesco
nel culo
quindi la mia raccomandazione qui sono stato
lavorare con il team di progettazione di Trello
e abbiamo capito come un sacco di
sprecare come ridurre tutto questo dolore e
tutto questo attrito ed è appena fatto
le cose sono molto più semplici e lo sono
fondamentalmente pensare a risorse come codice come
il più possibile come non pensare
come bitmap che ottieni da e
ottengono dal design più che puoi
pensala come le cose che puoi
esegui nella tua applicazione perché poi
è molto più veloce da modificare e modificare
le cose al volo quindi il primo esempio
di questo è l’XML disegnabile che è stato
in Android sin dall’inizio e
Java XML è nostre risorse che è possibile
definisci che puoi fare cose come disegnare
forme semplici puoi fare cose come set
su selettori di stato quindi è qui che tu
sapere se si preme un pulsante sembra
leggermente diverso questo è uno stato
selettore puoi usarlo come elenco di livelli
e questo è veramente utile perché se tu
avere due drawable che in realtà
voglio piacere strato uno sopra l’ altro
con più stati tra entrambi
loro potrebbero aver pensato come va bene
Design a 9eq per composizioni simili a tutti questi
immagini per me in realtà puoi solo impostare
su un elenco di livelli e quindi modificare i due
livelli indipendentemente si ottiene che bello
composizione in corso in modo dettagliato
esempio per questo sono i pulsanti di accesso
quella
ha funzionato una volta e così questi login
i pulsanti sono interamente realizzati
XML disegnabile quindi il primo passo da fare
questi pulsanti di accesso funzionano è quello di cui ho bisogno
per creare quel contorno di pulsanti e il
peso del pulsante ora un pulsante
delineare se stesso è solo il suo file così
non ci preoccupiamo per il clic
stato adesso ed è un uso a forma
forma disegnabile la prima parte importante
è è solo si può dire che il tipo
di forma che vuoi puoi anche fare
ovali e cose del genere ma lì
sei limitato a forme molto semplici
con java xml voglio dire che lo è
per lo più pieno di spazio trasparente dentro
fatto che dovrebbe essere il default ma io
pensa su alcune versioni precedenti di Android
non era predefinito per trasparente per
solido non mi ricordo esattamente perché allora
Voglio quel contorno bianco anche se così io
dargli un colpo che poi determina
quel contorno e mi piacerebbe avere un
piccolo raggio in modo che diventi così bello
un bel bottone sembra così giusto
creando il contorno il blu in realtà
arriva sullo sfondo dell’intero
schermo l’ ho messo lì perché
altrimenti sarebbe davvero difficile da vedere
con il mio sfondo bianco sulle diapositive
quindi è necessario avere un certo comportamento
quando clicco , voglio essere effettivamente
in grado di dire che ho cliccato e così noi
bisogno di aggiungere un selettore ad esso che tu
posso vedere in questo bellissimo piccolo a
frame gif e così il modo in cui sto facendo
questo è in realtà stratificazione di un selettore
in cima a quello schema di cui ho appena parlato
quindi sto usando un elenco di livelli e quel livello
lista mi permette di prendere due drawable e
mettere uno sopra l’altro e io sono
dicendo che lo strato superiore è quel contorno
che ti ho appena mostrato che è il the
il codice precedente che ho mostrato voi è
cosa sta succedendo , è sempre così
andando a essere disegnato e poi l’altro
il livello è un selettore e il selettore
ha solo due stati in esso e uno di
quegli stati è quando è premuto poi io
voglio che tu disegni quest’altra forma così
di nuovo sto usando un’altra forma disegnabile
per determinare cosa dovrebbe essere
disegnato dentro di esso e in questo caso lo è
un po ‘più semplice perché posso solo dire
Voglio che tu abbia un colore solido ma poi
di nuovo anche l’angolo, quindi non è così
finire sanguinante dagli angoli e
poi quando non è premuto nel
stato di default allora sarà solo
trasparente , è fantastico e tutto tranne
poi nella versione 21 di Android hanno aggiunto
anche questi bei lavori di ripple sembrano davvero
bella
e ciò richiede
un insieme di codice completamente diverso e così via
che finisci per usare qualcosa che è un
ripple XML qualcosa in cui hanno aggiunto
versione 21 e che all’interno vi sia
dove di dire ciò che il colore del
il ripple dovrebbe essere e poi dopo quello
aggiungere come va bene ho ancora lo stesso
contorno del pulsante come ciò che è in realtà essere
disegnato in quell’increspatura ma poi l’ ultimo
parte di questo è che definisco una maschera e
quella maschera fondamentalmente così dice che questo è il
schema di dove dovrebbe essere l’ondulazione
apparire e quindi il reale come solido
il colore al suo interno non ha molta importanza
è solo il fatto che questo drawable
attirerò su questa particolare area che
quello conta e quindi sono stato in grado di ottenere
via con tutto questo e hanno un
versione diversa per versioni diverse
di Android utilizzando la risorsa
sistema di qualificazione quindi in fondo lì
è questa la sagoma che sono sempre
sta per essere utilizzato ma poi il default
pulsante usa il selettore di stato che
lavorerà sempre fino a
versione 1 di Android penso e poi
drawable v21
per quel ripple drawable posso usare il loro
XML così disegnabile è un buon modo per farlo
salta un sacco di lavoro e poi non l’ho fatto
Devo solo chiedere il design per il
colori che non ho dovuto chiedere loro
qualsiasi altra cosa nel particolare vettore
drawable così come ho detto la forma
i drawable ti permettono di disegnare in modo molto semplice
forme niente vettore complicato
drawable ti permette di fare qualsiasi tipo di vettore
disegno che vuoi o disegno vettoriale
che vuoi così ti permette di fare
forme molto complesse e il vantaggio
qui usare un vettore è che non lo fai
devono quindi preoccuparsi della densità del
schermo tutto così tanto come prima
Dovevo prendere queste foto
design che era in tutto il diverso
densità qui possono solo darti un
singolo vettore e poi è
automaticamente disegnato a qualunque cosa sia il
il miglior debito la migliore risoluzione per quello
schermo in modo che sia un enorme risparmio di tempo ma
c’è un problema nel modo in cui
Android implementato vettoriale drawable
inizialmente un altro punto è quel vettore
i drawable sono stati aggiunti di recente su Android
ma c’è una libreria compatibile con le versioni precedenti
nelle librerie di supporto per l’utilizzo
i vettori tornano indietro a pensare 14
o qualcosa di simile, ma c’è un
grosso problema con il modo in cui Android
ha fatto ciò che è venuto fuori con
il loro formato vettoriale disegnabile che è
non in realtà SVG e se i tuoi designer
o qualcosa come i miei designer che conoscono
come parlare SVG davvero bene tutto
loro come tutti i loro strumenti
sapere come emettere un SVG un altro sapere
come produrre come drawable vettoriali così tu
bisogno di un modo per convertire questi SVG
che i progettisti si stanno dando in
pensare in un vettore drawable nell’app
quindi c’è una sorta di due modi di
facendo questo un disegno ci sono due modi di
facendo questo e uno è quando sei dentro
Android Studio è possibile dire che voglio un nuovo
risorsa vettoriale e questo ti farà apparire
bel piccolo mago e poi puoi passare
in SVG e lo convertirà
in un vettore disegnabile nel miglior modo possibile
gira ci sono alcuni SPG che questo
non funziona molto bene con e non lo farà
convertire così è buono ma lo sono ancora
anche più pigro di questo perché non lo faccio
voglio dover passare attraverso un mago
ogni volta che importare una nuova risorsa così
invece abbiamo effettivamente scritto questo che abbiamo scritto
questo prima di tutto il vettore disegnabile
sono successi animali bacchum ma noi siamo
ancora usandolo che è questo androide
plug-in che abbiamo scritto chiamato vincitore e
ciò che il vincitore fa è fondamentalmente definire
qualsiasi numero di set di sorgenti ovunque
hai il tuo SVG e si limiterà a sbrodolarsi
tutti quelli in alto e poi producono qualcosa
che il sistema può rendere e per
per un po ‘è solo uscita png ma
allora alla fine siamo in grado di arrivare
in realtà prendere il codice che è in questo
nuove risorse di asset vettoriali e poi usarle
per convertirlo direttamente in vettoriale
drawable quindi è fantastico perché
in realtà con Trello i nostri designer hanno
il proprio repository git che è dove
hanno messo tutto questo come compilato questo
VG e quindi possiamo proprio averlo
come ottiene sub module e importarlo e
quindi come non dovremmo mai piacere
in pratica, dobbiamo solo aggiornare un
commit pointer per ottenere nuove risorse da
il design è fantastico e quindi l’ultimo
cosa mi piace dire di ciò che è drawable
ha davvero risparmiato molto tempo recentemente
è la differenza tra skeuomorphic
e design piatto così design skeuomorphic
è dove hai cose che sembrano
esattamente come dovrebbero essere
e così questo è a sinistra
andy graph che è un’app che è mia
ha scritto un amico che fa agire il tuo telefono
esattamente come qualsiasi 83 83 84 qualunque
e sembra esattamente come sembra
molto realistico che è molto skeuomorphic
mentre a destra hai come il
calcolatore normale che è piatto e
ogni pulsante è solo questo piatto
colore e ciò che è veramente bello qui è
così bello come la cosa a sinistra
guarda a destra tutte le icone e tutto
il testo è solo un colore piatto e cosa
che significa è che è molto facile da
tingere quei colori e cambiarli sul
volare con i pulsanti sul
Lasciato sarebbe molto difficile tingerli
in ogni modo che sarebbe ragionevole così
in realtà nell’app Trello tutti i nostri
le risorse sono piatte di colore nero, quindi sono
nero su alfa e poi in codice che possiamo
prendi qualcuna di queste e colorala qualunque cosa
colore che vogliamo e quindi è super pratico
dal punto di vista del design perché loro
non è necessario creare più risorse per
qualunque colore vogliano ogni volta che lo fanno
ogni volta che vogliono cambiare il
colori possiamo solo dire oh è facile
andremo a cambiarlo in codice e poi
lo abbiamo fatto in termini di immagini tinte
c’è un po ‘di modi per farlo
uno è farlo via XML ma ma
oltre al fatto che la vista dell’immagine ha avuto
questa tinta attribuisce per sempre quale
non abbastanza lavorare tutto quel bene è
non compatibile all’indietro come ha ottenuto
aggiunto in due versioni recenti di Android
essere in grado di colorare i drawable in XML ma
non hanno trovato nessun modo per piacere
in realtà porto indietro che funzionalità così
Io alla fine effettivamente facendo la maggior parte del
tinting in codice che è molto
semplice con vista immagine e drawable voi
può chiamare set filtro colore e quindi solo
passare il colore e poi si scopre
quello per a per un’icona nera su alfa voi
voglio usare la modalità di porter de
fonte in che è in realtà perché l’ XML
immagine vista dell’attributo tinta lì I
non mi piace molto perché usa
una modalità di facchino non compatibile
come penso che devi creare bianco
icone su alfa che non stiamo facendo in
il momento se vuoi davvero
soluzione completa in cui esiste
le librerie di supporto sono disegnabili compat
e con questo in realtà si avvolge il
drawable e quindi puoi chiamare set tint
o impostare la lista delle tinte su quel foglio drawable
e il principale vantaggio che ha finito
basta chiamare direttamente il filtro del colore
che può gestire gli elenchi di tinte in modo che tu possa
hai più cose diverse che conosci
stati selezionati per quel drawable wrap
a colori e puoi tingere tutto
allo stesso modo, ma dal momento che non siamo realmente
usando quello nell’app finiamo di no
eppure non finiamo per farlo proprio così
spesso e così impostare i filtri colore solo a
modo più semplice e veloce di farlo comunque
questo era tutto ciò che ho avuto è stato un
scivolo mi è stato detto di mettere anche a
facci sapere cosa ne pensi
metti clic sulla faccia felice se ti è piaciuto
o la faccia triste se non ti piace
e grazie molte per essere venuto ad ascoltare
al discorso il mezzo il collegamento centrale
è per il mio blog dove ho scritto di più
su alcune di queste cose e poi se
alcune parti di questo discorso sono state prese da
altri discorsi che erano come più dettagliati
in particolare come gli stili e i temi
Sono andato molto più in dettaglio in questo modo
Posso guardare il mio vecchio mazzo di altoparlanti
proprio come trovare quei discorsi se lo sei
più interessato a imparare alcuni dei
più dettagli nitty-grintosi lì e
grazie mille
siamo lì tutte le domande bene il
la domanda era se la prestazione fosse
perso su macchine virtuali e bene mio
assumilo è quello
bene l’ interrogante potrebbe significare che se
usi come un emulatore e lo sei
facendo questo hai avuto una diapositiva con il
prestazioni grafiche in diversi
layout
cosa succede se così e così come vedi qui siamo
parlando di questo si si potrebbe
in realtà scopri che i tuoi layout
attraverso un emulatore nessuna idea è reale
dispositivo per questo sì, così come non lo farei
per cose come la profilazione come la
l’emulatore può davvero rendere le cose difficili
perché potrebbe essere potrebbe essere il caso
che come te hai questa GPU se lo sei
lavorando come un desktop di Windows o
qualcosa che hai una GPU che è più grande
rispetto al tuo telefono come quello di eseguire il
rendering e questo significa gettare le cose
un po ‘evidente o piace a tutti
potrebbe essere il caso che qualunque cosa io pensi
era che stava traducendo
da come braccio in x86 e poi quello
sarebbe molto lento, e così tutte le CPU
le operazioni sono veramente lente in pratica sì
Vorrei usare un dispositivo reale per tutti ma
per tutti i tipi di scopi di profilazione va bene
e tu l’hai toccato tu
layout vincolo mm-hmm che è
qualcosa con cui hai suonato oh si
giocato con la disposizione cristiana lascia il suo
il Salvatore lo spero perché così così
fa un sacco di cose che è una specie di
come questo composto di layout relativo
e il layout lineare in questo momento che consente
di creare layout molto complessi
senza avere troppo nidi e così via
la speranza è che tu li crei davvero
calma
piacciono i layout senza molto annidamento e
che attraverso la contrazione ceppo
sistema può avere figura migliore fuori
come se il modo più performante per
sistemare le cose velocemente, quindi spero
che ci salva dal dover usare
relativamente più spesso
si e penso che tu abbia se tu abbia
più domande, per favore , scendi e parla
con me in seguito, ma grazie davvero
molto poi e poi si ricorda di valutare
la sessione e posso vedere alcuni dei
parlare altoparlanti qui da Android
traccia così grazie mille è stato
un piacere e sì si prega di dare loro un
mano grazie
tu

Please follow and like us: