android: фон с Drawable в AndroidX - PullRequest
       13

android: фон с Drawable в AndroidX

0 голосов
/ 06 февраля 2020

Я искал SO для ответа на свой вопрос и не нашел, пожалуйста, дайте мне знать, если он был дан ответ в другом месте.

У меня было несколько кнопок в моем приложении:

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scaninbutton"
    android:layout_above="@+id/scanoutbutton"
    android:background="@drawable/buttonshape2"
    android:layout_marginBottom="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginEnd="10dp"/>

Beeing buttonshape2 выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
    android:radius="30dp"
    />
<solid
    android:color="@color/frontcolor"
    />
<padding
    android:left="0dp"
    android:top="0dp"
    android:right="0dp"
    android:bottom="0dp"
    />
<size
    android:width="100dp"
    android:height="40dp"
    />
</shape>

Все работало нормально, но после того, как я перенес свое приложение на Androidx, оно больше не работает. Как настроить рисование в качестве фона для компонентов?

Спасибо.

РЕДАКТИРОВАТЬ:

Кроме того, в некоторых кнопках в моем приложении есть код:

GradientDrawable bgShape = (GradientDrawable)askQuestion.getBackground();
                bgShape.setColor(Color.parseColor(almacen.getColor()));

происходит сбой при

java.lang.ClassCastException: android.graphics.drawable.RippleDrawable cannot be cast to android.graphics.drawable.GradientDrawable

... но происходит только при НЕКОТОРЫХ кнопках. На странице входа у меня есть этот код:

GradientDrawable bgShape3 = (GradientDrawable)entrar.getBackground();
    bgShape3.setColor(getColor(R.color.frontcolor));

И это работает! Единственное отличие состоит в том, что кнопка askQuestion является локальной переменной, а кнопка ввода является глобальной переменной. Это не имеет никакого смысла.

...