selettore del button android

Si tratta di un selettore di pulsanti in modo tale che quando normalmente appare rosso, quando viene premuto appare grigio.

Vorrei chiedere come potrebbe essere modificato ulteriormente il codice, in modo tale che quando si printingsse la dimensione e il colore del text potrebbero anche cambiare? Grazie molto!

  • submit correttamente i dati tra Python e Java tramite Bluetooth
  • Android onClick in XML contro OnClickListener
  • Android LinearLayout: aggiungere bordo con ombra intorno a un linearLayout
  • Android okHttp addFormDataPart in modo dinamico per l'image multipla
  • Android - AnimatorSet, Object Animator - La catena di animation Bounce sta amalgamando?
  • OutOfMemoryError: quando si riceve una risposta XML di 2,3 MB
  • <item android:state_pressed="true" > <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="@color/black" /> <solid android:color="@color/grey"/> <padding android:left="5dp" android:top="2dp" android:right="5dp" android:bottom="2dp" /> <corners android:radius="5dp" /> </shape> </item> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="@color/black" /> <solid android:color="#FF6699"/> <padding android:left="5dp" android:top="2dp" android:right="5dp" android:bottom="2dp" /> <corners android:radius="5dp" /> </shape> </item> 

  • dialogo di allarme personalizzato per get l'imbottitura indesiderata
  • Più file dex definiscono <my package> / BuildConfig, non riesce a trovare la causa:
  • android sfocia in modo programmabile disegni immagini
  • AlarmManager setExact con WakefulBroadcastReceiver a volte non esatta
  • Come trovare la vista da string invece di R.id
  • Imansible trovare com.google.android.gms: play-services: 3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1. 11 6.1.71 6.5.87
  • 5 Solutions collect form web for “selettore del button android”

    Devi solo impostare il selector di button nel file di layout.

     <Button android:id="@+id/button1" android:background="@drawable/selector_xml_name" android:layout_width="200dp" android:layout_height="126dp" android:text="Hello" /> 

    e fatto.

    Modifica

    Di seguito è il file button_effect.xml nella directory drawable

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item> <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item> <item android:drawable="@drawable/numpad_button_bg_normal"></item> </selector> 

    In questo puoi vedere che ci sono 3 disegni, basta inserire questo stile button_effect sul tuo button , come ho scritto sopra. Devi solo sostituire il nome selector_xml_name con button_effect .

    Non è ansible get una modifica della dimensione del text con un disegno di stato disegnabile . Per modificare il colore del text e la dimensione del text, eseguire questa operazione:

    Colore del text

    Per modificare il colore del text, è ansible creare la risorsa di stato dei colors . Sarà una risorsa separata situata nella directory res/color/ . Nel layout xml è necessario impostarlo come valore per android:textColor attribute. Il selettore di colore contiene quindi qualcosa di simile:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="@color/text_pressed" /> <item android:color="@color/text_normal" /> </selector> 

    Dimensione del text

    Non è ansible modificare le size del text semplicemente con le risorse. Non esiste un "selettore di dimensione". Devi farlo nel codice. E non c'è soluzione diretta.

    Probabilmente la soluzione più semplice potrebbe essere quella di utilizzare View.onTouchListener() e gestire gli events su e giù di conseguenza. Utilizza qualcosa di simile:

     view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); 

    Una soluzione diversa potrebbe essere quella di estendere la vista e di ignorare il setPressed(Boolean) . Il metodo viene chiamato internamente quando avviene la modifica dello stato premuto. Quindi modificare la dimensione del text di conseguenza nella chiamata di metodo (non dimenticate di call il super).

    Crea custom_selector.xml nella cartella disegnabile

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/unselected" android:state_pressed="true" /> <item android:drawable="@drawable/selected" /> </selector> 

    Creare la forma select.xml nella cartella disegnabile

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="90dp"> <solid android:color="@color/selected"/> <padding /> <stroke android:color="#000" android:width="1dp"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> 

    Crea la forma unselected.xml nella cartella disegnabile

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="90dp"> <solid android:color="@color/unselected"/> <padding /> <stroke android:color="#000" android:width="1dp"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> 

    Aggiungere i seguenti colors per lo stato selezionato / non selezionato nella cartella colors.xml di valori

     <color name="selected">#a8cf45</color> <color name="unselected">#ff8cae3b</color> 

    puoi verificare la soluzione completa da qui

    Il modo migliore per implementare il selettore è quello di utilizzare il xml invece di utilizzare il modo programmato come è più facile da implemnt con xml.

      <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item> <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item> <item android:drawable="@drawable/button_bg_normal"></item> </selector> 

    Per ulteriori informazioni ho implementato utilizzando questo link http://www.blazin.in/2016/03/how-to-use-selectors-for-botton.html

    È ansible utilizzare questo codice:

     <Button android:id="@+id/img_sublist_carat" android:layout_width="70dp" android:layout_height="68dp" android:layout_centerVertical="true" android:layout_marginLeft="625dp" android:contentDescription="" android:background="@drawable/img_sublist_carat_selector" android:visibility="visible" /> 

    (File di selettore) img_sublist_carat_selector.xml:

     <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/img_sublist_carat_highlight" /> <item android:state_pressed="true" android:drawable="@drawable/img_sublist_carat_highlight" /> <item android:drawable="@drawable/img_sublist_carat_normal" /> </selector> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.