2016-01-13 10 views
8

Ho creato una personalizzazione di base Switch, come definito di seguito.Traccia interruttore personalizzato per Android 'animazione'

<Switch 
     android:id="@+id/availSwitch" 
     android:layout_width="wrap_content" 
     android:switchMinWidth="110dp" 
     android:layout_height="wrap_content" 
     android:track="@drawable/switch_track" 
     android:thumb="@drawable/thumb"/> 

Il @drawable/thumb è un semplice PNG che funziona correttamente.

Il @drawable/switch_track è definito di seguito. @drawable/trackon e @drawable/trackoff sono PNG.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="false" android:drawable="@drawable/trackoff" /> 
    <item android:state_checked="true" android:drawable="@drawable/trackon" /> 
    <item        android:drawable="@drawable/trackoff" /> 

</selector> 

Questo interruttore appare e funziona come previsto per la maggior parte, ma c'è un modo per 'animare' la pista come il pollice attraverso di esse il trascinamento utente? O svanire tra il segno di spunta e il segno di spunta, o preferibilmente cambiare "dietro" il pollice.

Il comportamento corrente è mostrato di seguito.

Current behaviour

+1

migliore utilizzo SeekBar e renderlo custom..either utilizzare toogle –

+0

http://stackoverflow.com/questions/9752760/slide- toggle-for-android –

+0

https://github.com/tuesda/SwitchBox –

risposta

5

C'è stato un tempo ero anche cercando la stessa cosa quando ho bisogno di una funzionalità del pulsante di commutazione simile a iOS native che possono essere trascinati on/off per uno dei miei progetti. A quel tempo ho cercato duro e ho trovato questa libreria.

https://github.com/pellucide/Android-Switch-Demo-pre-4.0

Quindi spero che questo è quello che stai cercando troppo.

+0

Questo sembra il tipo di cosa che sto cercando, stupito di quanto sia stato difficile cercare qualcosa da fare con Switch per Android ... Grazie, controllerò questo! – BlitzKraig

+0

Giocato con la biblioteca e riuscito a ottenere un effetto decente. È un po 'complicato, specialmente quando si lavora con una versione più recente dell'API, è necessario aggiungere del codice hacky per farlo sembrare piacevole. Fa bene il lavoro, grazie mille per il tuo aiuto. – BlitzKraig

+0

Sì, è un po 'complicato da personalizzare ma contento che abbia funzionato per te :) –

1

Un interruttore è un widget interruttore a due stati che può selezionare tra due opzioni. L'utente può trascinare avanti e indietro il "pollice" per scegliere l'opzione selezionata, o semplicemente toccare per alternare come se fosse una casella di controllo. La proprietà text controlla il testo visualizzato nell'etichetta per lo switch , mentre il testo off e on controlla il testo sul pollice.

Per questo requisito è necessario per personalizzare il tuo Switch Pulsante Funzionalità

È possibile visitare per la demo

  1. Slide Toggle for Android

  2. Android-Switch-Demo-pre-4.0

  3. Custom Toggle Button for Android Applications

è necessario capire di seguito due linee.

 android:thumb="@drawable/customswitchselector" 
     android:track="@drawable/custom_track" 

Ha due tag: android:thumb and android:track .Thumb attirerà l'aspetto attuale quando abbiamo colpo o modificare lo stato.

0

è necessario effettuare pulsante Toggle personalizzato

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/darkGray" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context="com.gisinc.androidexamples.myapplication.MyActivity"> 

    <com.gisinc.androidexamples.androidtogglebutton.SettingsToggle 
     xmlns:widget="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/settings1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="30dp" 
     widget:prefName="useMyLocation" 
     widget:text="Use My Location" /> 

</RelativeLayout> 

Vedere this