German gibt es anpassbare Buttons?

tooob

Member
Licensed User
Longtime User
Hi,

ich versuche gerade viele Buttons mit Rahmen zu machen. In meiner Core version gibt es leider keine Rahmen. Ich wollte fragen ob es bereits additional libraries gibt mit denen ich das bewerkstelligen kann.

LG, Tooob
 

klaus

Expert
Licensed User
Longtime User
Für Buttons sind die Hintergründe etwas komplizierter.
Denn die 'standard' Hintergründe sind StateListDrawables, das heisst ein Button hat berchiedene Hintergründe ja nach Status des Buttons: normal, gedrückt usw.
Das kannst Du im Designer ändern.
Standard Hintergrund:
upload_2018-8-5_20-51-6.png


Aendere die Drawable Property in StateListDrawable:
upload_2018-8-5_20-52-50.png


Hier kannst Du ColorDrawables für verschieden Staten definieren.
upload_2018-8-5_20-56-2.png

Mit Color, Corner Radius, Border Color und Border Width.
 

tooob

Member
Licensed User
Longtime User
Vielen Dank für die schnelle Antwort.
Weißt du wie man das Code-technisch umsetzen kann? Da bei mir der User Farrben einstellen kann und die Buttons dann diese Hintergrund- und Rahmenfarben annehmen sollen.
 

klaus

Expert
Licensed User
Longtime User
B4X:
' Define a color for Enabled state
Dim cdwGreenColorEnabled As ColorDrawable
cdwGreenColorEnabled.Initialize2(Colors.Green, 10dip, 1dip, Colors.Black)
' Define a color for Pessed state
Dim cdwGreenColorPressed As ColorDrawable
cdwGreenColorPressed.Initialize2(Colors.RGB(255,182,18), 10dip, 1dip, Colors.Black)
' Define a StateListDrawable
Dim stdGreenColor As StateListDrawable
stdGreenColor.Initialize
Dim states(2) As Int
states(0) = stdGreenColor.state_enabled
states(1) = -stdGreenColor.state_pressed
stdGreenColor.AddState2(states, cdwGreenColorEnabled)
Dim states(1) As Int
states(0) = stdGreenColor.state_pressed
stdGreenColor.AddState2(states, cdwGreenColorPressed)
' Set stdGreenColor to button background
btnTest.Background = stdGreenColor

Diesen Code musst Du für jeden Button erstellen.
 

JOTHA

Well-Known Member
Licensed User
Longtime User
Klaus, DU bist mal wieder SUUUUPER ! :)
 

klaus

Expert
Licensed User
Longtime User
Ich wusste auch nicht mehr auswendig wie man es macht.
Aber ich wusste wo ich die Lösung finde.
Im B4A User's Guide
Kapitel 11.1 View Drawables
und mehr spezifisch
Kapitel 11.1.4 StateListDrawable
Ich hab aber einen Vorteil, ich weiss was in welchem Guide drin steht :).
 
Top