2013-05-17 24 views
5

Ho provato a cercare e utilizzare le persone personalizzate selectors che altre persone hanno pubblicato qui utilizzando il filtro colore impostato e varie altre cose. Penso che mi stia sbagliando completamente perché, in tutta onestà, non sono eccezionale nel progettare di aver appena iniziato a svilupparmi, ma non credo che possa essere così complesso da fare quello che voglio come ho visto:Pulsante Holo personalizzato

Ho sviluppato un'applicazione per froyo e versioni successive. Voglio che il colore di sfondo del pulsante sia holo green e holo orange come nei campioni sullo Android developer website. Questo è tutto ciò che voglio essere diverso. Voglio l'evidenziazione blu standard quando si preme il pulsante su holo o il comportamento standard del pulsante supress ecc. Atteso in froyo, pan di zenzero ecc.

Apprezzerei molto qualsiasi guida su questo. Grazie ragazzi in anticipo!

risposta

7

EDIT:

C'è un modo molto più semplice per modificare i colori del tema Holo. Questo sito lo farà per voi:

http://android-holo-colors.com


L'unico modo per personalizzare i pulsanti olo consiste nel modificare il drawable a bottone con un editor di immagini come Photoshop. Ecco come:

  • Aprire la cartella platforms/android-17/data/res nella directory SDK e trovare i pulsanti olografiche nelle cartelle disegnabili (iniziano con btn_default_holo_...).
  • Apriteli con l'editor di immagini e semplicemente cambiate i loro colori (tonalità/saturazione) in modo che corrispondano al colore desiderato. Ci sono 3 o 4 diversi drawable, uno per stato del pulsante.
  • Salvali nella corrispondente cartella disegnabile della tua app. Devi farlo per ogni densità di schermo che vuoi gestire (mdpi, hdpi, xhdpi di solito sono sufficienti).

Non ho provato, ma potrebbe essere sufficiente modificare solo i pulsanti xhdpi. Saranno ridimensionati alle densità inferiori.

Dopo aver personalizzato ciascun elemento estraibile, è necessario creare un selettore che verrà utilizzato come pulsante personalizzato. Ecco un esempio di un selettore che uso in una delle mie applicazioni per creare un pulsante ologramma verde:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_window_focused="false" android:state_enabled="true" 
      android:drawable="@drawable/__btn_green_normal_holo_light"/> 
    <item android:state_window_focused="false" android:state_enabled="false" 
      android:drawable="@drawable/__btn_default_disabled_holo_light"/> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/__btn_default_pressed_holo_light"/> 
    <item android:state_focused="true" android:state_enabled="true" 
      android:drawable="@drawable/__btn_default_focused_holo_light"/> 
    <item android:state_enabled="true" 
      android:drawable="@drawable/__btn_green_normal_holo_light"/> 
    <item android:state_focused="true" 
      android:drawable="@drawable/__btn_default_disabled_focused_holo_light"/> 
    <item 
      android:drawable="@drawable/__btn_default_disabled_holo_light"/> 
</selector> 

Ecco un esempio di una versione modificata green holo button drawable. Puoi controllare gli altri drawable del mio progetto se sei interessato, faccio esattamente quello che vuoi fare (ho anche un pulsante rosso).

+0

Grazie per la risposta! La mia unica preoccupazione è che dovrei adattarlo per ogni versione di Android in modo da imitare il solito (arancione in gingerbread e blue in ics ecc.) O ho sbagliato? – AndroidPenguin

+1

Hai ragione, ma puoi anche utilizzare i pulsanti holo per tutte le versioni. Questo è quello che faccio e ciò che fanno molte app conosciute. Sono migliori dei vecchi 2.1 pulsanti. – Dalmas

+0

Ok, lo farò! :) Grazie mille! – AndroidPenguin