Ich muss ein einfaches Drawable
Objekt mit der benötigten Farbe als Hintergrundfarbe erstellen, aber ich weiß nicht, wie ich es programmgesteuert ohne Verwendung eines XML-Schemas tun kann (ist das wirklich möglich?). Bitte, sagen Sie mir, ich brauche es für die Herstellung einer LayerDrawable
und die Arbeit mit SeekBar
(Hintergrund von SeekBar
programmgesteuert ändern). Vielen Dank im Voraus.Wie erstellt man ein Drawable mit der benötigten Hintergrundfarbe programmatisch?
Antwort
Sie sollten versuchen, eine ColorDrawable verwenden. Es kann mit einer Farbe mit dem Konstruktor ColorDrawable(int color)
ColorDrawable werden Sie in Ihrem Fall hilfreich sein, können Sie Parameter color für Ihre Zeichen übergeben.
oder Sie können wie unten etwas tun:
ImageView imgStatus = (ImageView) findViewById(R.id.imgInfoIcon);
// Load the icon as drawable object
Drawable d = getResources().getDrawable(R.drawable.ic_menu_info_details);
// Get the color of the icon depending on system state
int iconColor = android.graphics.Color.BLACK
if (systemState == Status.ERROR)
iconColor = android.graphics.Color.RED
else if (systemState == Status.WARNING)
iconColor = android.graphics.Color.YELLOW
else if (systemState == Status.OK)
iconColor = android.graphics.Color.GREEN
// Set the correct new color
d.setColorFilter(iconColor, Mode.MULTIPLY);
// Load the updated drawable to the image viewer
imgStatus.setImageDrawable(d);
oben Code ist ursprünglich here geschrieben
Vielen Dank. Aber bitte, sag mir, wie kann ich Id für Drawable setzen? Ich muss "android: ID/Hintergrund" für eine neue Zeichnungs – user1841247
auf diese Weise können Sie nicht zur Laufzeit setzen, ist es besser, Funktion zu erstellen übergeben Sie Ihre Ansicht ID, und stellen Sie die entsprechende Farbe zu Ihrer Ansicht. – RobinHood
Wie es von @Thrakbad vorgeschlagen wird, können Sie ColorDrawable
verwenden:
TextView textView = new TextView(this);
ColorDrawable colorDrawable = new ColorDrawable(0xFFFF0000);
textView.setBackgroundDrawable(colorDrawable);
- 1. Wie erstellt man programmatisch ein Thema mit Hornet q?
- 2. Android programmatisch verwischen imageview Drawable
- 3. Wie erstellt man einen Systemwiederherstellungspunkt programmatisch?
- 4. Wie man einen Drawable mit ObjectAnimator dreht?
- 5. Drawable vs. Drawable-LDpi/Drawable-Mdpi
- 6. Wie erstellt man ein Azure-Abonnement programmatisch in der Partner Center-API des CSP?
- 7. Wie erstellt man ein Farbverlaufsobjekt mit Raphael
- 8. Wie erstellt man eine Datenbank in Couchdb programmatisch?
- 9. Wie erstellt man ein Inhaltsverzeichnis mit pdfmake?
- 10. Wie erstellt man ein Verzeichnis mit StreamWriter?
- 11. Wie erstellt man ein XmlRepository mit XmlSerializer?
- 12. Wie erstellt man ein Schema mit JOOQ?
- 13. Wie erstellt man ein Web Slice mit der Suche?
- 14. Wie man eine Liste von DDL in C# programmatisch erstellt
- 15. Wie erstellt man programmatisch einen Button beliebiger Form?
- 16. Wie erstellt man ein Wissensdiagramm?
- 17. Wie erstellt man eine neue Tabelle programmatisch in Android/Java?
- 18. Wie erstellt man ein Pipelineskript?
- 19. Wie erstellt man eine Liste (Material-Ui) programmatisch?
- 20. Wie erstellt man ein Dateifeld?
- 21. Wie man ein ImageView programmatisch skaliert
- 22. Wie wird die Hintergrundfarbe eines TabLayout mit der Toolbar verglichen?
- 23. Wie erstellt man einen Timer in Android programmatisch?
- 24. Ändern Hintergrundfarbe programmgesteuert erstellt Optionsfeld
- 25. Webpack & Bündelung der benötigten Dateien?
- 26. iOS: Wie man Ansichten mit XIB programmatisch erstellt, aber ohne View Controller zu verwenden
- 27. Android - Wie man Knopffarbe programmatisch einstellt
- 28. Wie man Anwendungssymbole programmatisch in Android
- 29. Android: Wie erstellt man ein GridLayout [nicht GridView] programmgesteuert?
- 30. Wie erstellt man ein verstecktes Verzeichnis?
Danke . Aber bitte, sag mir, wie kann ich Id für Drawable setzen? Ich muss "android: ID/Hintergrund" für eine neue ziehbare setzen – user1841247
Ich verstehe nicht, was Sie versuchen zu tun. Wozu brauchst du die ID? Sie können "ColorDrawable" einfach zu Ihrem 'LayerDrawable' hinzufügen, indem Sie den Konstruktor' LayerDrawable (Drawable [] layers) 'verwenden. Sie benötigen keine ID für das ColorDrawable. Die ID des Layers kann dann mit 'LayerDrawable.setId (int index, int id) gesetzt werden' ' – Thrakbad