Tilpasning af listevisninger i dine Android-apps

Efter at have arbejdet som ingeniør i mere end et årti, har jeg lært, at ofte den sværeste del af løsningen af ​​et problem kommer i gang. Dette var tilfældet, da vores marketingteam kontaktede mig om at variere nogle af farverne i vores Android-applikation for bedre at matche virksomheds branding-skemaet.

Det viste sig, at det at være en hovedpine viste sig at være væk fra standard "Android-orange", når man arbejder med listevisninger. Ironisk nok, da jobbet var afsluttet, var der meget lidt kode involveret, og bestemt var ingen af ​​koden kompliceret. Det var bare et tilfælde af at kæmpe Android-dokumentationen, forskellige Android-relaterede fora og masser af prøve og fejl. I modsætning til oberst og hans berømte stegt kylling, synes jeg, det er god forretning at dele den "hemmelige opskrift". Gennemsigtighed er det, der adskiller Android i mobilområdet.

Hvis du har været på udkig efter en digital sammenkogning for at give dine listevisninger lidt ekstra zing, skal du ikke lede længere. Denne tutorial vil lede dig gennem processen i et par lette trin. Hvis du hellere vil importere hele projektet til Eclipse, kan du få koden her. Lad os nu komme i gang!

1. Start et nyt projekt i Eclipse. Målplatforme 1.6 og nyere. Hvis du bruger en nyere version af ADT, kan du muligvis ændre navnet på standardaktiviteten, som guiden opretter for dig til Main.java for at gøre det lettere at følge med i denne tutorial.

2. Opret en mappe, der kan tegnes i mappen / res. Mappen / tegnes vil indeholde det baggrundsbillede, vi ønsker for individuelle listeelementer. Der er et par ting, du skal huske på her. Først bruger jeg XML til at tegne baggrundsform og skygge, der formes dynamisk, men du kan også bruge en 9-PNG (NinePatch) her. For det andet bruger jeg den samme baggrund for både de valgte og pressede tilstande, men du kan bryde dem med to separate billeder, hvis du gerne vil have en mere kompleks animation.

 pressed.xml 

"1.0" encoding = "utf-8" ?>

"http://schemas.android.com/apk/res/android">

android: startColor = "#ffffff"

android: endColor = "# 181818"

android: vinkel = "270" />

"0dp" />

3. Under biblioteket / res skal du oprette en mappe med titlen / xml. Det er her du tilføjer vores brugerdefinerede listevælger.

 my_list_selector.xml 

"http://schemas.android.com/apk/res/android">

"rigtigt"

android: drawable = "@ drawable / pressed" />

"rigtigt"

android: drawable = "@ drawable / pressed" />

"rigtigt"

android: drawable = "@ drawable / pressed" />

"@android: farve / hvid" />

4. Opret de to / layoutfiler: en til aktiviteten og en til at definere vores listevisningsrader. I layoutet main.xml skal du notere farve tip til cache og den gennemsigtige baggrund; disse er nødvendige, når du bruger brugerdefinerede baggrunde i rækker med individuelle lister.

 main.xml 

"1.0" encoding = "utf-8" ?>

http://schemas.android.com/apk/res/android

android: layout_width = "fill_parent"

android: layout_height = "fill_parent"

android: orientering = "lodret"

android: baggrund = "#ffffff" >

android: id = "@ + id / android: liste"

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: dividerHeight = "1dip"

android: layout_gravity = "center"

android: baggrund = "@android: farve / gennemsigtig"

android: cacheColorHint = "# 0000"

android: layout_margin = "8dip"

android: tyngdekraft = "center"

android: focusable = "falsk" />

list_item.xml

"1.0" encoding = "utf-8" ?>

http://schemas.android.com/apk/res/android

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: polstring = "6dip"

android: fokuserbar = "falsk"

android: baggrund = "@ xml / my_list_selector" >

android: id = "@ + id / label"

android: layout_height = "wrap_content"

android: layout_width = "fill_parent"

android: textSize = "16sp"

android: textColor = "# 0000ff"

android: polstring = "2dip" />

5. Føj vores Main.java-fil til / src-biblioteket. Bortset fra at oprette en standardgruppe af strenge, der skal bruges, og pege vores adapter til listepostlayoutet, udfører rammen kombineret med vores XML-filer alt arbejde bag kulisserne.

 Main.java- pakke com.authorwjf.customlistviews; 
 import com.authorwjf.customlistviews.R; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; 
 public class Main udvider ListActivity { 
 privat streng  mFruits = {"æble", "orange", "bannana", "pære", "kiwi", "druer", "jordbær" 
 }; 
 @Override offentligt tomrum onCreate (Bundle gemtInstanceState) { super .onCreate (gemtInstanceState); 

setContentView (R.layout. main );

setListAdapter ( ny ArrayAdapter ( dette, R.layout. list_item, R.id. label, mFruits));

}

}
Hvis du gerne vil se før og efter ( figur A og figur B ), kan du fjerne linjen android: baggrund = "@ xml / my_list_selector" fra filen list_item.xml, før du sammenstiller og kører APK på en enhed eller emulator. Figur A

Standard Android List-valg
Figur B

Valg af tilpasset Android-liste

Som jeg sagde, da vi startede, er der intet særligt vanskeligt, når det kommer til at tilpasse en listevisning ud fra et teknisk perspektiv. Nu hvor du har en fod i døren, overlader jeg dig til det.

© Copyright 2021 | pepebotifarra.com