Auch das versuche ich noch herauszufinden. Etwas Glück?
– Übersetzungsverlust
6. Dezember 2015 um 14:34 Uhr
Ersetzen Sie Ihre XxxView durch AppCompatXxxView in Ihrem Layout-XML und folgen Sie den Ratschlägen von @kikettas: stackoverflow.com/a/37947545/3810036
– Garry Dias
16. August 2018 um 22:14 Uhr
Kasium
Es ist eine Weile her seit dem OP, aber ich persönlich habe eine Lösung gefunden, die für mich viel besser funktioniert hat als die vorgeschlagenen Antworten. Ein … Erstellen BitmapDrawable macht es einfach möglich, das Alpha zu setzen:
Alpha kann ein beliebiger Wert zwischen 0 und 255 sein. Beachten Sie, dass es sich um eine Art Umkehrung des HEX-Farbwerts Alpha handelt, da beispielsweise 70 % Alpha B3 in HEX und 77 in BitmapDrawable wären.
Tatsächlich war Alpha in XML vom Float-Typ, es sollte einen Wert zwischen 0,0 und 1,0 haben.
– liuyong
2. Juni 2015 um 9:04 Uhr
@liuyong Das mag für Aufrufe gelten, aber nicht für <bitmap>. Die Fähigkeit, das “Alpha” von a einzustellen <bitmap> ist eine derzeit nicht dokumentierte Funktion, die möglicherweise funktioniert oder nicht. Der Wert stellt auch nicht wirklich den Alpha-Wert im herkömmlichen Sinne dar, sondern eher sein Gegenteil, die Deckkraft, weshalb man – falls es denn funktionieren sollte – für den Wert 255 und volle Deckkraft ein komplett transparentes Bitmap erhalten würde mit dem Wert 0.
– sfera
5. August 2015 um 12:55 Uhr
@sfera, gibt es eine Möglichkeit, dies in XML zu tun, oder haben wir kein Glück?
– Übersetzungsverlust
6. Dezember 2015 um 14:31 Uhr
@liuyong Was die Android-Dokumentation angeht, nehme ich an, dass wir kein Glück haben. Das undokumentierte Alpha-Attribut scheint auf Android 5+ zu funktionieren, aber das hilft nicht, wenn man frühere Versionen unterstützen möchte. Sie könnten transparente Ressourcen generieren oder versuchen, Symbolschriften zu verwenden. Verpacken der Bitmap in a NinePatch scheint auch auf Android 5+ zu funktionieren, aber ich habe es nicht auf früheren Versionen getestet. Bitte sagen Sie, wenn Sie eine andere Option finden.
– sfera
7. Dezember 2015 um 9:20 Uhr
Dies funktioniert nur für tatsächliche Bilder, nicht für Drawable (z. B. Farbe).
Hier drüben wurde das Alpha 50 verwendet, das die Deckkraft festlegt. Ich hoffe, das hilft
Das ist nützlich. Wenn Sie dies in Kombination mit einer Ebenenliste und Ihrem eigenen Zeichenelement verwenden, können Sie ein Zeichenelement für einen gedrückten Zustand erstellen.
– Robert
17. März 2015 um 5:20 Uhr
Ich habe es nicht verstanden, wie ändert es das Alpha eines Drawables?
– M. Usman Khan
26. Dezember 2015 um 7:56 Uhr
Hex-Werte werden paarweise beschrieben. Die ersten 2 stellen das Alpha dar (für Android sind es sowieso manchmal die letzten 2). Die nächsten 3 Paare repräsentieren Rot – Blau – Grün #5000ddff alpha(50) red(00) blue(dd) green(ff)
– dblackker
29. November 2016 um 17:19 Uhr
Leider beantwortet dies nicht das OP, bei dem es darum ging, das Alpha von a zu ändern ziehbarkeine Farbe.
– Michael A.
2. August 2018 um 11:16 Uhr
Antwort ist richtig, aber 50 % Alpha in Hex ist 256/2 = 128 und daher #80
– lange
14. Dezember 2018 um 17:42 Uhr
Fredrik Metcalf
Ich habe nach dem gleichen gesucht. Obwohl dies vor über vier Jahren gepostet wurde, ist dies der oberste Beitrag beim Googeln des Problems, also werde ich hier antworten.
Ich habe das versucht. Funktioniert nicht für mich. Auf Emulator getestet (Nexus 5X API 23).
– Monish Kamble
31. Mai 2016 um 12:29 Uhr
Nach dem Wechsel hat es funktioniert state_selected zu state_pressed.
– Monish Kamble
31. Mai 2016 um 12:42 Uhr
Ja, das wäre der Normalfall, aber ich habe den Beispielcode aus der Frage verwendet.
– Fredrik Metcalf
1. Juni 2016 um 12:47 Uhr
Kiketts
Für diejenigen, die das gleiche Problem wie OP haben, erlaubt Ihnen AppCompat jetzt, den Parameter „alpha“ so zu setzen, wie er es in seinem Zielcode wünschte:
Mein Ziel war es, dass eine Schaltfläche ihre ausgewählten und gedrückten Zustände in einem anderen Alpha hat – aber dieselbe (png) Ressource verwendet und so wenige Dateien wie möglich betrifft.
Meine Lösung ähnelt dem Ändern des Alphas in einem BitmapDrawable – aber es geschieht über den Selektor, sodass nur eine Datei betroffen ist.
Verwenden Sie die Tönungsfunktion von Bitmap, denken Sie daran, dass die Tönung die vorhandenen Pixel einfärbt, also verwenden Sie eine weiße Farbe. Beispiel: #80FFFFFF – um die Farbe wie im Original zu halten, aber Alpha um 50 % zu reduzieren. Dies könnte auch verwendet werden, um die Farbe des Symbols zu ändern, wenn es gedrückt wird.
Auch das versuche ich noch herauszufinden. Etwas Glück?
– Übersetzungsverlust
6. Dezember 2015 um 14:34 Uhr
Ersetzen Sie Ihre
XxxView
durchAppCompatXxxView
in Ihrem Layout-XML und folgen Sie den Ratschlägen von @kikettas: stackoverflow.com/a/37947545/3810036– Garry Dias
16. August 2018 um 22:14 Uhr