无法获取按钮背景颜色

Unable to get button background color

我正在尝试从随机调色板中获取按钮的当前背景颜色。但是,当我尝试以下代码时,我的应用程序总是崩溃。

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

我总是收到此错误消息。

    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.DrawActivity3.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)

您需要将其转换为 RippleDrawable

int activeColor = ((RippleDrawable)color1.getBackground()).getColorStateList().getDefaultColor();