программно изменить цвет фона макета

У меня есть таблица, использующая макет таблицы. И у меня есть доступный ресурс для каждого столбца. Доступный ресурс здесь.

<shape android:shape= "rectangle">
      <solid android:color="@color/white"/>
      <stroke android:width="1dp" android:color="@color/red"/>
      <size android:width="100dp" android:height="50dp"/>
      <padding
          android:left="5dp"
          android:top="5dp"
          android:right="5dp"
          android:bottom="5dp" />
</shape>

Я использовал setBackgroundResource() метод. Моя проблема в том, что я хотел бы изменить цвет фона некоторых столбцов во время выполнения в зависимости от логики. Когда я использую метод setBackgroundColor, доступный ресурс для этого столбца исчез. Есть какой-либо способ сделать это? На самом деле я не хочу создавать еще одну возможность рисования для этого столбца. Это может быть второй способ.


person user1156041    schedule 07.05.2013    source источник
comment
использовать setBackgroundDrawable?   -  person Chor Wai Chun    schedule 07.05.2013
comment
Это устарело. Не так ли?   -  person user1156041    schedule 07.05.2013
comment
возможно, в javadoc написано, что пользователь setBackground (Drawable), но я не нашел ни одного. Что касается ответов других людей, вам нужно установить версию API вашего проекта как минимум на 16, затем вы можете использовать setBackground.   -  person Chor Wai Chun    schedule 07.05.2013
comment
Вот он: developer.android .com / reference / android / view /.   -  person Voicu    schedule 07.05.2013
comment
Вы пытались создать форму для каждого желаемого цвета, а затем установить фоновый ресурс для столбца на форму с желаемым цветом?   -  person HeatfanJohn    schedule 07.05.2013
comment
да. Я понял. Я сделаю свой второй путь. все равно спасибо.   -  person user1156041    schedule 07.05.2013
comment
Возможный дубликат Программной установки цвета фона   -  person Martin Zeitler    schedule 16.01.2019
comment
или даже с 2010 года: stackoverflow.com/questions/2173936/   -  person Martin Zeitler    schedule 16.01.2019