Impossibile ottenere il colore di sfondo del pulsante

0

Domanda

Sto cercando di ottenere il colore di sfondo corrente di un pulsante da una serie di palette di colori. Tuttavia, la mia app è sempre in crash quando cerco il codice riportato di seguito.

int activeColor = ((ColorDrawable)color1.getBackground()).getColor();

Ho sempre questo messaggio di errore.

    Process: com.boredgiant.chora, PID: 17418
    java.lang.ClassCastException: android.graphics.drawable.RippleDrawable cannot be cast to android.graphics.drawable.ColorDrawable
        at com.boredgiant.chora.DrawActivity$103.onClick(DrawActivity.java:850)
        at android.view.View.performClick(View.java:6314)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
        at android.view.View$PerformClick.run(View.java:24793)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6543)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
android background button colors
2021-11-24 06:08:05
1

Migliore risposta

0

È necessario eseguire il cast di RippleDrawable

int activeColor = ((RippleDrawable)color1.getBackground()).getColorStateList().getDefaultColor();
2021-11-24 06:18:14

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................