Button Android o TextView Border in modo programmato senza utilizzare il metodo setBackgroundDrawable

Sto cercando un modo per mettere un bordo per la visualizzazione di text o un button in modo programmato senza utilizzare il metodo setBackgroundResource.

L'objective che sto cercando di get qui è quello di cambiare il colore di background dynamicmente ma con un bordo fisso. Quando utilizzo il metodo setBackgroundResource per il bordo di background, il bordo non rimane dopo aver modificato in modo programmato il colore di background.

  • Esempio di AlarmManager semplice per sparare un'attività in 10 minuti
  • Android App si blocca dopo Scorrimento verso il basso ListView
  • I tuoi contenuti devono avere un ListView il cui attributo id è 'android.R.id.list'
  • Android java.net.UnknownHostException: l'host non è risolto
  • Android: come accoppiare i dispositivi Bluetooth a livello di programmazione?
  • Convertire stringe HTML escaped in unicode / ASCII
  • Frammento di View Pager che si nasconde dietro il tab bar
  • Cosa devo usare per get migliori performance, risorse xml a nove patch o disegnabili?
  • modificare la properties; animateLayoutChanges utilizzando il codice java
  • Java - Convertire la string in un object URI valido
  • Theme.AppCompat.Light.DarkActionBar - Nessuna risorsa trovata
  • Come ottengo la fonte di pagina da WebView?
  • 2 Solutions collect form web for “Button Android o TextView Border in modo programmato senza utilizzare il metodo setBackgroundDrawable”

    Semplice esempio di come si possa raggiungere questo objective:

    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); } } 

    Questo ti aiuterà.

      <?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" /> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.