Come posso modificare i colors nel mio StateListDrawable?

Ho un selettore di seguito per un button (con 2 stati, regolari e premuti):

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <solid android:color="#3498DB" /> <stroke android:width="1dp" android:color="#2980B9" /> <corners android:radius="0dp" /> <padding android:left="12dp" android:top="12dp" android:right="12dp" android:bottom="12dp" /> </shape> </item> <item> <shape> <solid android:color="#2980B9" /> <stroke android:width="1dp" android:color="#2980B9" /> <corners android:radius="0dp" /> <padding android:left="12dp" android:top="12dp" android:right="12dp" android:bottom="12dp" /> </shape> </item> </selector> 

Il mio button ha le seguenti informazioni che specifica lo background come il selettore di cui sopra:

  • Android System WebView blocca applicazioni Android! "Le lapidi sono disabilitate sulle creazioni utente di JB MR2 +"
  • Reimposta i valori predefiniti di Preferenze
  • Il tema di DayChart AppCompat non funziona con Android 6.0?
  • Come analizzare xml utilizzando diversi nodes genitori in android
  • Android specificando unità pixel (come sp, px, dp) senza utilizzare XML
  • Layout Android: su TextView e android: drawableStart - impostazione dell'icona?
  •  <Button android:id="@+id/button_LaunchShiftsGame" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ShiftsMode" android:background="@drawable/selector_Button" style="@style/Button_Text" /> 

    Ho bisogno di accedere e modificare i colors per entrambi gli stati dal codice quando l'attività viene caricata.

    Come posso fare questo?

  • Lasciare app android con il tasto di return
  • RxJava + Retrofit -> BaseObservable per richieste API per la gestione centralizzata delle risposte
  • BLUetooth Gatt Callback non funziona con la nuova API per Lollipop
  • due visuale di scorrimento direzionale
  • Eccezionale exception quando Livewallpaper è impostato in Android
  • Come posso utilizzare più componenti GLSurfaceView nello stesso layout?
  • One Solution collect form web for “Come posso modificare i colors nel mio StateListDrawable?”

      StateListDrawable gradientDrawable = (StateListDrawable) inflatedView.getBackground(); DrawableContainerState drawableContainerState = (DrawableContainerState) gradientDrawable.getConstantState(); Drawable[] children = drawableContainerState.getChildren(); LayerDrawable selectedItem = (LayerDrawable) children[0]; LayerDrawable unselectedItem = (LayerDrawable) children[1]; GradientDrawable selectedDrawable = (GradientDrawable) selectedItem.getDrawable(0); GradientDrawable unselectedDrawable = (GradientDrawable) unselectedItem.getDrawable(0); selectedDrawable.setStroke(STORKE_SIZE, NOTIFICATION_COLOR); unselectedDrawable.setStroke(STORKE_SIZE, NOTIFICATION_COLOR); 

    Ho usato questo per cambiare l'ictus, può essere utile.

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