Ich würde gerne wissen, wie man die Taste Farbe programmatisch einstellen? Ich habe codiert die folgenden aber nicht:android set button hintergrund programmatisch
Button11.setBackgroundColor(R.color.red);
Dank !!
Ich würde gerne wissen, wie man die Taste Farbe programmatisch einstellen? Ich habe codiert die folgenden aber nicht:android set button hintergrund programmatisch
Button11.setBackgroundColor(R.color.red);
Dank !!
R.color.red
ist eine ID (die auch eine int
ist), ist aber keine Farbe.
Verwenden Sie eine der folgenden Aktionen statt:
// If you're in an activity:
Button11.setBackgroundColor(getResources().getColor(R.color.red));
// OR, if you're not:
Button11.setBackgroundColor(Button11.getContext().getResources().getColor(R.color.red));
Oder alternativ:
Button11.setBackgroundColor(Color.RED); // From android.graphics.Color
Oder für mehr pro Fähigkeiten:
Button11.setBackgroundColor(0xFFFF0000); // 0xAARRGGBB
Wie stelle ich verschiedene Farben für mehr als eine Schaltfläche, die programmgesteuert erstellt wird? – JUL2791
Aber es löscht alle Arten, wie Grenzen oder abgerundete Ecken. Es stellt also tatsächlich die Farbe für den Knopfbereich ein, nicht die Tastenfarbe wie OP angefordert. –
Beachten Sie, dass 'getColor()' jetzt veraltet ist. Verwenden Sie 'ContextCompat' http://StackOverflow.com/a/32149275/1358777 –
button.setBackgroundColor(getResources().getColor(R.color.red);
Legt die Hintergrundfarbe für diese Ansicht. Parameter: Farbe die Farbe des Hintergrunds
R.color.red
ist eine Referenz, die bei der Kompilation in gen generiert wurde.
Alter Thread, aber etwas Neues gelernt, hoffe, das könnte jemandem helfen.
Wenn Sie die Hintergrundfarbe ändern möchten, aber andere Stile beibehalten möchten, dann hilft Ihnen das weiter unten.
button.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.MULTIPLY);
' setColorFilter' legt nur einen Farbton auf den vorhandenen Hintergrund. Es wird keine neue Hintergrundfarbe festgelegt. –
Wenn Sie die Schaltfläche für den erhöhten Materialstil verwenden, wird dies funktionieren. Nicht 'Button.setBackgroundColor()'. – fahmy
Es ist 2017 jetzt und es ist immer noch sooo hässlich, diese ganze Reihe von Boilerplate zu schreiben, um die Farbe von Ressource zu setzen ... –
welchen Effekt versuchen Sie zu bekommen? Ein einfaches rotes Rechteck ohne zusätzliche Effekte? Wenn nicht, werden Sie eine Art von Zeichen benötigen, um zu erreichen, was Sie nach, entweder ein PNG (9patch) oder etwas in xml definiert. Das System hat keine eingebaute Möglichkeit, eine Schaltfläche zu erstellen, die wie eine normale Schaltfläche aussieht, mit Ausnahme einer anderen Farbe. Sie müssen Ihre eigene Ressource bereitstellen, es sei denn, Sie suchen nach einem einfachen einfarbigen Rechteck. – FoamyGuy
eigentlich was ich tue ist, dass aus einer Tabelle von 12 Tasten das Programm zufällig 6 von ihnen auswählt, um definierten Text zu füllen. Ich möchte, dass diese 6 Tasten in eine andere Farbe wechseln. In dieser Hinsicht kann es nicht im XML-Teil getan werden, sondern nur programmatisch. Ich habe bereits einige xml definiert (die erste nicht ausgewählte ist einfach grüne runde Farbe, wenn ausgewählt, ich wünsche, dass es einfach rote runde Farbe wird) Wenn auf diese Weise, kann es getan werden? – pearmak
Richtig, aber Sie müssen entweder eine rote Schaltfläche Bild wie ein 9patch Png haben, oder Sie müssen eine rote Schaltfläche Form in Xml definieren. Wenn Sie einfach die Hintergrundfarbe in Rot ändern, erhalten Sie ein einfaches rotes Rechteck, das nicht wie eine normale Schaltfläche aussieht. – FoamyGuy