Não é possível obter botão cor de plano de fundo

0

Pergunta

Eu estou tentando obter a corrente cor de plano de fundo de um botão a partir de um estudo randomizado paleta de cores. No entanto, o meu app é sempre falhando quando eu tentar o seguinte código.

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

Eu sempre recebo esta mensagem de erro.

    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

Melhor resposta

0

Você precisa lançá-lo para RippleDrawable

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

Em outros idiomas

Esta página está em outros idiomas

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