Android программно изменить фон кнопки - PullRequest
0 голосов
/ 29 января 2020

Я не могу изменить фон моей кнопки в своей активности. Это базовая c кнопка, которая имеет форму фона.

В моем main. xml это выглядит так в моем RelativeLayout:

<Button
    android:id="@+id/mybtn"
    android:background = "@drawable/rounded_button"
    android:elevation="0dp" />

В MainActivity я пытаюсь изменить кнопку следующим образом:

    Button btn = findViewById(R.id.mybtn);
    btn.setBackgroundColor(Color.RED);

Но там написано:

не удается разрешить метод setBackgroundColor

Ответы [ 4 ]

0 голосов
/ 29 января 2020

Вы должны изменить setBackgroundColor на setBackground.

Button button= findViewById(R.id.mybtn);

Попробуйте этот код ниже

button.setBackgroundResource(ContextCompat.getColor(MainActivity,this,R.color.red));
0 голосов
/ 29 января 2020

Вы должны изменить фон вашего рисования, я думаю,

Drawable mDrawable = AppCompatResources.getDrawable(context, R.drawable. rounded_button); 
Drawable wrappedDrawable = DrawableCompat.wrap(mDrawable);
DrawableCompat.setTint(wrappedDrawable, Color.RED);   
0 голосов
/ 29 января 2020

Вы должны изменить setBackgroundColor на setBackground.

Button btn = findViewById(R.id.mybtn); btn.setBackground(Color.RED);
0 голосов
/ 29 января 2020

Попробуйте:

Button b = ...;
int color = ...;
...
CompoundButtonCompat.setButtonTintList(button, ColorStateList.valueOf(color));

Библиотеки Compat проверяют совместимость и устраняют большинство проблем, связанных с фрагментацией android.

Вы можете попытаться установить фон, вызвав библиотеку совместимости с set Метод цвета фона, но я предпочитаю, и, вероятно, наиболее распространенным является вызов методов подкрашивания для компонентов, которые поступают из appcompat и библиотеки дизайна материалов.

Надеюсь, это поможет.

BR

...