German gibt es anpassbare Buttons?

Discussion in 'German Forum' started by tooob, Aug 5, 2018.

  1. tooob

    tooob Member Licensed 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
     
  2. klaus

    klaus Expert Licensed 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 likes this.
  3. tooob

    tooob Member Licensed 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.
     
  4. klaus

    klaus Expert Licensed User

    Code:
    ' Define a color for Enabled state
    Dim cdwGreenColorEnabled As ColorDrawable
    cdwGreenColorEnabled.Initialize2(
    Colors.Green, 10dip1dipColors.Black)
    ' Define a color for Pessed state
    Dim cdwGreenColorPressed As ColorDrawable
    cdwGreenColorPressed.Initialize2(
    Colors.RGB(255,182,18), 10dip1dipColors.Black)
    ' Define a StateListDrawable
    Dim stdGreenColor As StateListDrawable
    stdGreenColor.Initialize
    Dim states(2As Int
    states(
    0) = stdGreenColor.state_enabled
    states(
    1) = -stdGreenColor.state_pressed
    stdGreenColor.AddState2(states, cdwGreenColorEnabled)
    Dim states(1As 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.
     
    MarkusR and tooob like this.
  5. tooob

    tooob Member Licensed User

    Vielen Dank Klaus,

    werde ich direkt ausprobieren.
     
  6. JOTHA

    JOTHA Well-Known Member Licensed User

    Klaus, DU bist mal wieder SUUUUPER ! :)
     
  7. klaus

    klaus Expert Licensed 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 :).
     
    DonManfred and JOTHA like this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice