android come applicare forma e selettore simultaneamente per Button

Ho applicato una forma per un button come:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="#DD000000" android:endColor="#DD2d2d2d" android:angle="90"></gradient> <corners android:radius="15dip"></corners> </shape> 

Ora voglio utilizzare un selettore come:

  • Le tabelle di width al 100% non funzionano in Gmail Android
  • Che cosa provoca un MotionEvent.ACTION_CANCEL in Android?
  • Conversione di dati a tipo BLOB
  • IllegalArgumentException: imansible localizzare adb in Android Studio v2.3
  • Come posso get un contenuto di risorse da un context statico?
  • Visualizzazione di un elenco di elementi Android selezionati
  •  <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/active" android:state_pressed="true" /> <item android:drawable="@drawable/passive"/> 

    anche per questo button. È ansible …???

  • Android App si blocca durante l'installazione
  • Come submit un grande video su un server, in Android?
  • Dom parser in android 4.0 API
  • HTML Mobile - forzando la tastiera soft per hide
  • Robolectric: Risorse $ NotFoundException: ID della risorsa di string con il plugin di Gradley di Android 3
  • Come printingre i dati che vengono dal edittext?
  • 8 Solutions collect form web for “android come applicare forma e selettore simultaneamente per Button”

    utilizzare in questo modo:

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

    . . . .

    Dettagliata alla risposta a punti

    Crea una risorsa di colore in

    res / valori / colors.xml

     <?xml version="1.0" encoding="utf-8"?> <resources> <item name="yellow" type="color">#F7B500</item> <item name="yellow_dark" type="color">#AC7E00</item> <integer-arrays name="androidcolors"> <item>@color/yellow</item> <item>@color/yellow_dark</item> </integer-arrays> </resources> 

    Crea un disegnatore a

    res / drawable / bg_yellow_round.xml

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="@color/yellow" /> <stroke android:width="2dp" android:color="@color/yellow" /> <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" android:topLeftRadius="20dp" android:topRightRadius="20dp" /> </shape> 

    Crea un altro disegni, vuoi per la transizione nello stesso luogo e denominarla

    res / drawable / bg_yellow_dark_round.xml

     <solid android:color="@color/yellow_dark" /> <stroke android:width="2dp" android:color="@color/yellow_dark" /> <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" android:topLeftRadius="20dp" android:topRightRadius="20dp" /> 

    Ora creare un elenco di stati di colore a

    res / colore / btn_selector_yellow.xml

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_shortAnimTime"> <item android:drawable="@color/yellow" android:state_focused="true" android:state_pressed="false"/> <item android:drawable="@drawable/bg_yellow_dark_round" android:state_pressed="true"/> <item android:drawable="@drawable/bg_yellow_round"/> </selector> 

    Adesso metti al tuo button come segue

     <Button android:id="@+id/button1" android:layout_width="248dp" android:layout_height="44dp" android:layout_gravity="center_horizontal" android:layout_marginBottom="10dp" android:layout_marginTop="20dp" android:background="@color/btn_selector_yellow" android:text="AZ_ is so cool" /> 

    Ora questo farà la transizione da giallo chiaro

    a

    giallo scuro .

    shape.xml

     <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/star_off"/> <corners android:radius="5dp"/> <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> </shape> 

    selector.xml

     <selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime"> <item android:drawable="@color/tab_focused" android:state_focused="true" android:state_pressed="false"/> <item android:drawable="@color/tab_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/shape"/> </selector> 

    È inoltre ansible creare una forma che utilizza un selettore all'interno. Se la tua forma sta semplicemente cambiando il suo colore in diversi stati, questo è molto più pulito.

    colore / color_selector.xml

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/blue_dark" android:state_pressed="true" /> <item android:color="@color/blue_light" /> </selector> 

    drawable / shape.xml

     <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/color_selector" /> <corners android:bottomLeftRadius="6dip" android:bottomRightRadius="6dp" /> <padding android:bottom="0dip" android:left="0dip" android:right="0dip" android:top="0dip" /> </shape> 

    Questo è il mio modo, e funziona!

     <item android:state_pressed="true"> <shape android:shape="oval"> <gradient android:centerX=".6" android:centerY=".40" android:endColor="@color/colorPrimary" android:gradientRadius="20" android:startColor="@color/colorPrimary" android:type="radial" /> <stroke android:width="1dp" android:color="#FFFFFF" /> <size android:width="55dp" android:height="55dp" /> </shape> </item> <item android:state_focused="false"> <shape android:shape="oval"> <gradient android:centerX=".6" android:centerY=".40" android:endColor="@android:color/transparent" android:gradientRadius="20" android:startColor="@android:color/transparent" android:type="radial" /> <stroke android:width="1dp" android:color="#FFFFFF" /> <size android:width="55dp" android:height="55dp" /> </shape> </item> 

    Utilizza il tuo nome di forma quando utilizza un'image e usa il selettore durante l'utilizzo dell'image. Prova che non affronterai alcun problema. È quello che stavi chiedendo?

    Il mio esempio è un button cerchio con state_pressed. codice sotto:

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

    Beh so che è troppo tardi, ma qui è un esempio risolto

      <TextView android:id="@+id/txt_out_going_calls" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="04dp" android:layout_weight="1" android:background="@drawable/header_text_view_selector" android:gravity="center" android:text="@string/outgoing_calls_tab_button_text" android:textColor="@color/home_text_color" /> 

    e il mio header_text_view_selector

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true"> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/home_fragment_tab_color_selected"/> <corners android:radius="25dip" /> <padding android:bottom="08dip" android:left="9dip" android:right="9dip" android:top="08dip" /> </shape> </item> <item android:state_selected="false"> <shape> <solid android:color="@color/home_fragment_tab_color_simple"/> <corners android:radius="25dip" /> <padding android:bottom="08dip" android:left="9dip" android:right="9dip" android:top="08dip" /> </shape> </item> </selector> 

    Così fondamentalmente im creando un text di text arrotondato con selettore. Qui gestisco solo state_selected e not_selected . Spero che sia d'aiuto

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.