Hintergrundfarbe / flache Buttons

  • Hi,


    wenn ich für beispielsweise einne Button eine Hintergrundfarge definiere (egal ob im XML oder dynamisch aus der App heraus), dann geht das komplette Design des buttons verloren, er ist dann einfach nur noch ei nflaches Rechteck. Was ist denn da los - kann ich nicht mal die Buttonfarbe verändern ohne dass es den zugehörigen "Skin" zerlegt? Bzw. wie kann ich das sonst lösen, dass ich einen Button irgend wie andersfarbig gestalte und er deswegen trotzdem noch irgend wie nach einem plastischen Bedienelement aussieht?

  • Bevor du dich totsuchst ein kleines Beispiel


    Diesen Style habe ich zB meinen Themes definiert, bei background siehst du einen Verweis auf Drawables



    die dazu gehörige navbtn_custom.xml in Drawable sieht so aus - damit regelst du bei welchem Button State, die jeweilige Grafik genutzt wird



    oh mein gott noch mehr Verweise auf Drawables --- navbar background sieht jetzt zb so aus




    Ach so und in deinem XML layout musst du deinem Button natürlich den entsprechenden Style zu weisen.
    Du kannst die Zuweisung in Themes auch auf alle Button übertragen, falls gewünscht


    Code
    <Button
                	android:id="@+id/nav_home"
                	style="@style/NavButton"
                	android:layout_width="wrap_content"
                	android:layout_height="wrap_content"
                	android:drawableTop="@drawable/ki_home"
                	android:text="@string/ma_home" />
  • Hm, ich fürchte, das ist auch keine Lösung für mich: ich bekomme die Informationen über Größe/Layout/Farbe der Buttons aus einer eigenen Datei. Diese Informationen muss ich dynamisch in ein Layout bzw. in Buttons umsetzen, die dann genau so aussehen sollen, wie in dieser Datei vorgesehen. D.h. prinzipiell kann jede beliebige Kombination von Farben/Vorder-/Hintergründen vorkommen, die es im 24-Bit-Farbraum gibt. Vordefinierte XML-Files fallen damit also weg.


    Ich finde es ja ziemlich lausig, dass Android da so dermaßen begrenzt ist, da hätte man Swing wohl doch nicht aus politischen Gründen über Bord werfen sollen :-/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!