Как я могу исправить GradientDrawable не может быть приведен к проблеме ColorDrawable?
У меня есть фрагмент кода, чтобы показать вам ниже, и я пытаюсь изменить фон представления (v). Я получу цветовой код от TextView
(перетащил) и изменить View
(v) фон с помощью этого кода. Но я получаю ошибку, как указано выше. Как я могу это исправить? В чем проблема? Благодарю.
ColorDrawable cd = (ColorDrawable)dragged.getBackground();
int colorCode = cd.getColor();
v.setBackgroundColor(colorCode);
1 ответ
Если вы хотите просто назначить фон одного вида другому, а не только цвет, вы можете использовать следующий код
Drawable drawable = dragged.getBackground();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
v.setBackgroundDrawable(drawable );
}else{
v.setBackground(drawable);
}
Однако, если вы хотите получить только цвет, вам придется заранее определить, какие типы рисования назначаются для просмотра. Затем используйте instanceof, чтобы узнать, как получить цвет фона для соответствующего объекта.