Beste praksis for utforming av Android-apper

Det kan til tider være utrolig vanskelig å designe apper for Android. Mangfoldet av skjermstørrelser og piksletetthet mellom enheter betyr at oppsettene må være designet for å flyte dynamisk, og bilderessursene må skaleres riktig. Da jeg først begynte å lage Android-applikasjoner, var brukergrensesnittet et av de vanskeligste aspektene å mestre. Og fordi jeg var en forferdelig grafisk designer av natur, var jeg heldig nok til å kunne samarbeide med flere talentfulle designere som hjalp meg med å finne ut hvordan jeg kunne style apper raskt og målrette mot de fleste skjermkonfigurasjoner der ute.

Først må du forstå hvordan Android har gjort det mulig for utviklere å bedre takle problemet med å utvikle for forskjellige skjermstørrelser og pikktettheter. Det har blitt ganske litt mer komplisert med spredning av Android-nettbrett på markedet, så i forbindelse med dette innlegget skal jeg holde det enkelt og prøve å kun adressere min erfaring når jeg utvikler apper for telefonformfaktor.

De fleste telefoner faller i kategoriene ldpi (lav), mdpi (middels) og hdpi (høy). Hvis du noen gang har opprettet en ny Android-applikasjon i Eclipse, har du sannsynligvis lagt merke til en "drawable-hdpi, " "drawable-mdpi, " og "drawable-ldpi" -mappe opprettet som standard i "res" -katalogen til det nye prosjektet. Forrige gang jeg sjekket, utgjorde enheter med lav tetthet bare 3-5% av enhetene på markedet. På grunn av det bestemte jeg meg for å kun målrette enheter mot medium og høy tetthet i min egen utvikling.

Designe komps og bilderessurser

Mitt første råd er å ha designeren til å utforme alle komps for applikasjonen din i to størrelser: 320x480 og 480x800. Den første vil være for mdpi-enheter og den siste for hdpi.

Når komponentene blir skivet opp i de individuelle bildressursene dine, må du sørge for å plassere hdpi-ressursene i "drawable-hdpi" -mappen og mdpi-ressursene i "drawable-mdpi" -mappen.

La designeren også merke alle høyder eller bredder som må oversettes til XML-oppsettene i mdpi-komponentene. Android har et mål på enheten kalt "dip" eller tetthetsuavhengige piksler som bør brukes til å utforme layoutene dine, og alle dipmålinger bruker mdpi som grunnlinje, og det er grunnen til at du ønsker å tilordne dem basert på 320x480-oppsettet.

Designe / style XML-layoutene dine

Layoutene må være utformet slik at de flyter riktig mellom forskjellige skjermstørrelser. Hvis du har noen nettutviklingsbakgrunn, vil dette sannsynligvis være litt lettere for deg på et konseptuelt nivå. Imidlertid, hvis dette er første gang du designer dynamiske brukergrensesnittoppsett, kan dette være en av de største kampene dine for å komme riktig. Og det er absolutt mye annerledes enn de piksel perfekte perfeksjonene i iOS.

Når jeg prøver å konvertere komponentene til en designer til en faktisk layout, er det første jeg gjør å prøve å visualisere de forskjellige brukergrensesnittelementene og hvordan de alle passer sammen. For å gjøre dette, må du ha et sterkt grep om de forskjellige alternativene som er tilgjengelige for deg i Android. Jeg har funnet denne referansen utrolig nyttig tidligere, så det er sannsynligvis lurt å studere den siden og se alle eksemplene hvis du ikke allerede har gjort det.

Jeg pleier å bruke LinearLayouts og RelativeLayouts mest og bruker noen ganger TableLayouts. Imidlertid pleier jeg å bruke ListViews mer enn TableLayouts siden jeg synes at de er lettere å binde data til og tilordne generiske onClick-håndterere til radene. RelativeLayouts er utrolig nyttige når du prøver å plassere brukergrensesnittelementer på bestemte steder i forhold til andre elementer.

Tildel dynamiske høyder og bredder

I stedet for hardkodende høyder og bredder i UI-elementene dine, gir Android flere identifikasjoner som kan brukes i stedet:

• fyll_foreldre

• match_parent (samme som fill_parent etter API-nivå åtte)

• wrap_content

De to første skal være ganske selvforklarende, og den siste betyr at du lar UI-elementet ta så mye plass som er nødvendig når det skaleres. Dette knytter seg til det tidligere emnet for å utvikle bilderessurser. Hvis du har fulgt forslagene mine, så når du oppretter layoutene og definerer ImageViews, bør du kunne spesifisere "wrap_content" for både høyde og bredde på hvert bilde, og de vil vises riktig på både mdpi og hdpi-enheter uten skalering nødvendig .

Hvis designen krever at en høyde eller bredde må defineres, bruker du som nevnt tidligere "dip" som enheten og oppgir verdier basert på de fra mdpi-komponenten. Hvis du gjør dette riktig, skal oppsettene skaleres perfekt mellom forskjellige skjermstørrelser, og du trenger ikke å definere en egen xml-fil for mdpi og hdpi.

Layoutvekt

LinearLayouts støtter det som kalles layout_weight i Android. Layoutvekter er, i et nøtteskall, en måte å tillegge UI-elementer viktighet med hensyn til hvilken del av rester, ubrukt plass hvert element vil fylle. Konseptet er ganske komplisert, så jeg anbefaler å lese informasjonen gitt her under LinearLayout-delen. Jeg har funnet at alternativet er mest nyttig når jeg prøver å dele skjermen inn i spesifikke forhold mellom forskjellige layoutelementer.

Tilpassede skrifter

Android gir ikke mange alternativer når det kommer til skrifttyper, så jeg antok alltid at jeg trengte å bruke bilderessurser for noen tilpassede skrifter til jeg bestemte meg for å søke litt. Det viser seg at hvis du plasserer fontfilen i aktivitetsmappen til Android-prosjektet ditt, kan du tilordne den til en TextView, men den må gjøres programmatisk. Her er et eksempel på hvordan du vil oppnå dette:

 Typeface font = Typeface.createFromAsset (getAssets (), "league_gothic.otf"); ((TextView) findViewById (R.layout.MyTextView)) setTypeface (font).; 

Konklusjon

Mye tid og krefter går i å designe og style Android-apper på en slik måte at du kan gjøre det en gang og høste fordelene på alle eller de fleste enheter. Bland inn kompleksitetene i å designe både portrett- og landskapsbilder (som jeg ikke tok opp i denne oversikten), og arbeidet blir stadig vanskeligere.

Jeg håper disse tipsene gjør at Android-utviklingen din fungerer i det minste litt enklere og lar deg fokusere på læringsteknikker for å forbedre deg på andre områder. Legg ut favoritt tips og triks for Android-design i diskusjonen.

© Copyright 2020 | mobilegn.com