wake-up-neo.com

Android Button oder TextView Border programmgesteuert ohne Verwendung der setBackgroundDrawable-Methode

Ich bin auf der Suche nach einer Möglichkeit, einen Rand für entweder Textansicht oder eine Schaltfläche programmgesteuert zu setzen, ohne die Methode setBackgroundResource zu verwenden.

Das Ziel, das ich hier zu erreichen versuche, ist, die Hintergrundfarbe dynamisch zu ändern, jedoch mit einem festen Rand. Wenn ich die setBackgroundResource-Methode für den Hintergrundrand verwende, bleibt der Rand nach einer programmatischen Änderung der Hintergrundfarbe nicht erhalten. 

16
VizZy

Ein einfaches Beispiel, wie dies erreicht werden konnte:

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.setBackground(Gd);


    }

}
49
janzoner

Ich denke, das wird dir helfen.  

 <?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" />
0
user1682446