2016-11-16 1 views
0

Ich suche nach Google und weiter kämpfen auf der Suche nach Schlüsselwort, aber immer noch nichts.Set Specified Views Hintergrund stilistisch und Ändern von Themen

Was ich will, genau wie:

<style name="Theme.DefaultWhite" parent="@android:style/Theme.DeviceDefault"> 
    <item name="android:background">#ffffffff</item> 
    <item name="MyCustomBackground">#33ffffff</item> 
    </style> 
    <style name="Theme.DefaultBlue" parent="@android:style/Theme.DeviceDefault"> 
    <item name="android:background">#ffffffff</item> 
    <item name="MyCustomBackground">#3388ffff</item> 
    </style> 

und stellen Sie das Element an meinem angegeben Views (andere davon Android Standard verwenden).

<ImageView> 
     id = "@+id/NNI_ivCards" 
     background="@style/MyCustomBackground" 
    </ImageView> 
    <ImageView> 
     id = "@+id/NNI_ivBarRoot" 
    </ImageView> 

NNI_ivCardsImageView müssen die Hintergrundfarbe von Themen geändert werden, und NNI_ivBarRoot werden von Themen nicht geändert.

Ich brauche stilistisch benutzerdefinierte Ressource, die Werte nach Thema geändert hat.

Wenn es Android entworfen, um benutzerdefinierte Werte nicht in Stilen zu setzen, brauche ich Java-Code so kurz wie möglich.

Antwort

1

so,

dieser Code könnte die Farbe (irgendeine Farbe) nach Themen zu ändern ändern.

erste, Sie haben 2 Style auf Ihre style.xml wie folgt hinzuzufügen:

<style name="DefaultTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

</style> 

<style name="CustomTheme" parent="Theme.DefaultTheme" > 

</style> 

hier nur ich hinzufügen Default und CustomTheme, gehen jetzt in deine manifest.xml und fügen Sie diese Zeile android:theme="@style/DefaultTheme" zu Ihrem Anwendung tag:

<application 
     android:theme="@style/DefaultTheme" 
     ...> 

neue xML-Datei erstellen benannt attrs.xml und fügen Sie diesen Code:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <attr name="color1" format="color" /> 
    <attr name="color2" format="color" /> 
</resources> 

zurück in Stil gehen und diese Farben hinzufügen:

<style name="DefaultTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="color1">#FFFFFF</item> 
    <item name="color2">#FFFFFF</item> 
</style> 

<style name="CustomTheme" parent="Theme.DefaultTheme" > 
    <item name="color1">#33ffffff</item> 
    <item name="color2">#3388ffff</item> 
</style> 

Sie jetzt 2-Thema haben, in Default color1 und color2 ist #FFFFFF und in CustomTheme color1 ist # 33ffffff und color2 ist # 3388ffff

zu Ihrem Imageview gehen und diese Farbe hinzufügen:

, um das Thema ändern Sie setTheme(R.style.DefaultTheme); vor setContentView() Methode in onCreate() Methode aufrufen müssen, damit Ihre Tätigkeit so sein sollte:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setTheme(R.style.CustomTheme); 
    setContentView(R.layout.main_activity); 
    .... 
} 
+0

Ich kann es mit Stil Thema ändern, wenn ich hart codieren es Stil Ansichten. – nyconing

+0

so brauchen Sie Code, um Thema zu ändern, und die Farben ändern sich mit Thema. Siehe meine Antwort, um es zu lösen. –

+0

Sie sind mein Held! Set? Attr/color1 macht es !!!!!! Und dieser Attr muss vielleicht unter ? – nyconing