2010-05-05 7 views
5

Warum ändert sich die Farbe der Standard-Schaltfläche, so dass es RECTANGLE Shape aussieht? Ich möchte dafür keine benutzerdefinierten Hintergrundbilder verwenden. Ich möchte das programmatisch für einige Bedingungen tun, bei denen ich die Farben vieler kleiner Tasten auf dem Bildschirm ändere. Kann jemand eine Lösung geben?Warum ändert sich die Farbe der Standardschaltfläche so, dass sie in Android RECHTS aussieht?

P.S. ==> Es scheint, dass es keine Problemumgehung durch das Lesen dieser http://groups.google.com/group/android-beginners/browse_thread/thread/e1313e2c98e9c52b

gibt oder gibt es?

+0

Siehe http://stackoverflow.com/questions/1521640/standard- android-button-with-a-different-color – OneWorld

Antwort

8

Für Farbwechsel:

Drawable d = findViewById(R.id.button_name).getBackground(); 
       PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP); 
       d.setColorFilter(filter); 

Zum Entfernen von Farbe:

Drawable d = findViewById(R.id.button_name).getBackground(); 
       findViewById(R.id.button_name).invalidateDrawable(d); 
       d.clearColorFilter(); 
1

Sie können das folgende XML-Skript anstelle von Farben als Hintergrund verwenden verwenden. Zunächst einmal möchte ich Ihnen sagen, dass die Button-Ansicht standardmäßig ein Rechteck ist. Wenn Sie also einfach eine Button-Ansicht in Ihrem Layout hinzufügen, wird ein Standard-Hintergrundstil zugewiesen und Sie können ihn daher mit abgerundeten Ecken sehen. Wenn Sie den Hintergrund zuweisen, wird der Standardtyp/das Standardthema außer Kraft gesetzt und Sie erhalten den Button im Originalformular, so dass Sie das Design/stype entsprechend Ihrer Anforderung anwenden müssen. Wenn Sie es für einige Tasten wollen, dann können Sie den folgenden XML-Fehler verwenden. Erstellen Sie einfach eine .xml-Datei in Ihrem Zeichenprogramm unter Ressourcen in Android-Projekt. Ordnen Sie dann diese .XML-Datei als Hintergrund Ihrer Schaltflächenansicht zu. Und sehen, was passiert ...

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ffffff"/> 
    <corners android:radius="6dp"/> 
    <padding android:left="3dp" android:top="2dp" 
      android:right="3dp" android:bottom="2dp" /> 
</shape> 
+0

Die Verwendung von oben xml für den Hintergrund der Schaltfläche gibt eine gewisse Form, aber seine Farbe rot zu ändern programmgesteuert wieder verursacht seine Form zu Rechteck. – Pritam

Verwandte Themen