Android Button или TextView Border программно, не используя метод setBackgroundDrawable

Я ищу способ поместить границу для текста или кнопки программно, не используя метод setBackgroundResource.

Цель, которую я пытаюсь достичь здесь, – это изменить фоновый цвет динамически, но с фиксированной границей. Когда я использую метод setBackgroundResource для фоновой границы, граница не остается после изменения цвета фона программным путем.

Простой пример: как это можно достичь:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:text="@string/hello_world" /> </RelativeLayout> 

MainActivity.java

 package com.exmple.test; import android.app.Activity; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GradientDrawable gd = new GradientDrawable(); gd.setColor(0xFF00FF00); // Changes this drawbale to use a single color instead of a gradient gd.setCornerRadius(5); gd.setStroke(1, 0xFF000000); TextView tv = (TextView)findViewById(R.id.textView1); tv.setBackgroundDrawable(gd); } } 

Я это сделаю.

  <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFFF" android:endColor="#FFFFFF" android:angle="270" /> <corners android:radius="3dp" /> <stroke android:width="5px" android:color="#eecc68" /> </shape> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginLeft="52dp" android:layout_marginTop="39dp" android:background="@drawable/button" android:text="Button" /> 
Intereting Posts
NoClassDefFoundError: java.util.Objects Android Добавление нового элемента в начало RecyclerView Как получить тень на линейной компоновке Android? Виджет приложений в Android с сетевым подключением Google-plus: невозможно загрузить человека Почему плагин Eclipse + ADT поддерживает процессор на 100% Бета-версия в Android-магазине. Где ссылка для тестировщиков? Как использовать asynctask для отображения индикатора выполнения, который учитывается? Типированный массив должен быть переработан после использования с #recycle () Android – это onDestroy, который должен уничтожить активность, свои переменные и освободить память Использование Espresso 2.0 + Roboelectric в Android-проекте Android CollapsingToolbarLayout title – ошибка верхнего края ProGuard в AndroidStudio: как получить обфускацию библиотеки .aar-файлов из многомодульной версии выпуска проекта? Обычный простой интерфейс для хранения данных для Android, J2ME и ПК Ajax xhr.getResponseHeader («заголовок пользователя») не работает только для родного браузера Android