it-swarm.com.de

Android-Tastenhintergrundfarbe

Ich versuche, die Hintergrundfarbe einer Schaltfläche in meiner App festzulegen, und ich kann nicht das gewünschte Ergebnis erzielen ...

Die Farbe, die ich versuche zu setzen, ist holo_green_light(#ff99cc00). Um dies zu tun, verwende ich setColorFilter(0xff99cc00, PorterDuff.Mode.MULTIPLY);

Die Farbe, die ich bekomme, ist nicht der holo_green_light, sondern eine Mischung aus hellgrauem und holo_green_light.

Ich habe versucht, die LightingColorFilter ohne großen Erfolg zu verwenden.

Gibt es eine Möglichkeit, es programmgesteuert auszuführen, so dass die Schaltfläche als Schaltfläche und nicht als flaches Rechteck mit der Farbe angezeigt wird, die ich brauche.

45
user2260040

Schaltflächen sind komplexer als nur eine Farbe zu ändern ...

Android-Buttons werden mit einer Reihe von 9 Patches und State Draws erstellt. Sie sollten einen Blick auf Android Holo Colors werfen, um diese zu generieren. Wählen Sie "Color Button" aus, um die erforderlichen Bilder und XML-Dateien für Sie zu generieren ...

17
Tonithy

Dies ist meine Art, benutzerdefinierte Buttons mit verschiedenen Farben zu machen

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<stroke Android:width="3dp"
        Android:color="#80FFFFFF" />

  <corners Android:radius="25dp" />

  <gradient Android:angle="270"
            Android:centerColor="#90150517"
            Android:endColor="#90150517"
            Android:startColor="#90150517" />
</shape>

Auf diese Weise stellen Sie den Hintergrund ein.

<Button Android:id="@+id/button"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Button"
        Android:layout_marginBottom="25dp"
        Android:layout_centerInParent="true"
        Android:background="@drawable/button"/>
41
Bebin T.N

Wenn es Ihnen nichts ausmacht, es zu codieren, können Sie dies ~> Android: background = "# eeeeee" tun und jede beliebige Hex-Farbe # fallen lassen.

Sieht aus wie das....

<Button
    Android:id="@+id/button1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentRight="true"
    Android:layout_below="@+id/textView1"
    Android:text="@string/ClickMe"
    Android:background="#fff"/>
15
V.Nice

Wenn Sie den allgemeinen Stil beibehalten möchten (abgerundete Ecken usw.) und nur die Hintergrundfarbe ändern möchten, verwende ich die backgroundTint-Eigenschaft

Android:backgroundTint="@Android:color/holo_green_light"
14
Mark Proctor

Erstellen Sie /res/drawable/button.xml mit folgendem Inhalt:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
 <solid Android:color="#90EE90"/> 
    <corners
     Android:bottomRightRadius="3dp"
     Android:bottomLeftRadius="3dp"
  Android:topLeftRadius="3dp"
  Android:topRightRadius="3dp"/>
</shape>

Und dann können Sie Folgendes verwenden:

<Button
    Android:id="@+id/button_save_prefs"
    Android:text="@string/save"
    Android:background="@drawable/button"/>
12
Giant

Das muss kein Hardcore sein.
Versuche dies :

YourButtonObject.setBackground(0xff99cc00);
5
Mehdi

Warum nicht einfach setBackgroundColor(getResources().getColor(R.color.holo_light_green)) verwenden?

Bearbeiten: Wenn Sie etwas haben möchten, das eher wie eine Android-Schaltfläche aussieht, möchten Sie einen Farbverlauf erstellen und als Hintergrund festlegen. Für ein Beispiel können Sie diese Frage auschecken.

4
Jonathan

Neben der Antwort von Mark Proctor:

Wenn Sie den Standardstil beibehalten möchten, die Schaltfläche jedoch mit einer bedingten Farbe versehen ist, legen Sie die backgroundTint-Eigenschaft wie folgt fest:

Android:backgroundTint="@drawable/styles_mybutton"

Erstellen Sie die zugehörige Datei /res/drawable/styles_mybutton.xml, verwenden Sie dann die folgende Vorlage und ändern Sie die Farben nach Ihrem Geschmack:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <!-- Disabled state-->
    <item Android:state_enabled="false"
        Android:color="@Android:color/white">
    </item>
    <!-- Default state-->
    <item
        Android:color="#cfc">
    </item>
</selector>
0
LePatay

Um den Stil beizubehalten, verwenden Sie:

int color = Color.parseColor("#99cc00");
button.getBackground().mutate().setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC));
0
BluEOS