Bouton Android ou TextView Border par programme sans utiliser setBackgroundDrawable method

Je cherche une façon de mettre une bordure pour la visualisation de texte ou un bouton par programme sans utiliser la méthode setBackgroundResource.

Le but que j'essaie d'atteindre ici est de changer la couleur d'arrière-plan de façon dynamique mais avec une bordure fixe. Lorsque j'utilise la méthode setBackgroundResource pour la bordure d'arrière-plan, la bordure ne reste pas après avoir modifié la couleur d'arrière-plan par programme.

  • Comment masquer un EditText pour afficher le format de date dd / mm / aaaa
  • Android SDK équivoque pour viewWillAppear (iOS)?
  • Android: ajout d'un bouton de mise à niveau
  • AlertDialog avec les boutons OK / Annuler
  • Polices personnalisées et vision de texte personnalisée sur Android
  • Android ScrollView scrollTo () ne fonctionne pas avec TextView?
  • Polices personnalisées et vision de texte personnalisée sur Android
  • Android SpannableString définit l'arrière-plan derrière une partie du texte
  • Spannablestring ne fonctionne pas pour le bouton créé par programmation
  • Comment gérer les langues RTL sur les versions pré 4.2 de Android?
  • Ajoutez http: // www. Dans le texte s'il n'existe pas
  • Comment supprimer la propriété Ellipsized de TextView à partir du code?
  • 2 Solutions collect form web for “Bouton Android ou TextView Border par programme sans utiliser setBackgroundDrawable method”

    Exemple simple, comment cela pourrait-il être réalisé?

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

    Je pense que cela vous aidera.

      <?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" /> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.