2017-03-09 2 views
1

Ich versuche, die Farbe des Hintergrunds in meiner Android App zu ändern. In dem Moment, in dem ich die Taste drücke, ändert sich die Farbe für diese spezifische Aktivität und nicht für alle anderen Aktivitäten. Gibt es eine Möglichkeit, es für die gesamte App zu ändern?Ändern der Hintergrundfarbe einer Aktivität

screen

public class colorPicker extends AppCompatActivity { 

    View view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_color_picker); 

     view = this.getWindow().getDecorView(); 

    } 

    public void goPink(View v){ 

     view.setBackgroundResource(R.color.Pink); 
    } 

    public void goGreen(View v){ 

     view.setBackgroundResource(R.color.Green); 
    } 

    public void goYellow(View v){ 
     view.setBackgroundResource(R.color.Yellow); 

    } 
} 
+0

Speichern Sie die BG-Farbe bevorzugt und erhalten Sie Ihre BG-Farbe beim Laden von Einstellungen – UMESH0492

Antwort

0

Sie könnten das Fenster Hintergrundfarbe Ihrer App Thema ändern und einen Hintergrund für die Aktivitäten nicht verwenden, oder Sie einen transparenten Hintergrund für Aktivitäten nutzen können. Folgendes diesem Thema

<item name="android:windowBackground">@color/window_background 

und setzen android:theme="@style/YourTheme" in Ihrem

0

ein Thema in Ihrem styles.xml erstellen und fügen Sie

<application> 
... 
</application 

in Manifest-Datei

+0

Ich glaube, das ist eine Lösung, wenn ich eine bestimmte Farbe als Entwickler wählen möchte. Ich möchte, dass der Benutzer eine Farbe auswählt, indem er einen Knopf in der Aktivität drückt, und danach ändert sich die Farbe. Ich hoffe, ich mache es klar! –

+0

Gehen Sie durch diese http://stackoverflow.com/questions/33987678/programmatical-change-the-value-of-a-color-resource-obtetain-von-api-response –

0

In diesem Fall müssen Sie um einige Änderungen in Ihrer Aktivität hinzuzufügen. In auf onCreate

if(getIntent().getExtras() != null) 
    { 
     int theme = getIntent().getIntExtra("theme", R.style.AppTheme); 
     setTheme(theme); 
     getApplication().setTheme(theme); 
     //recreate(); 
    } 

Zustand ONCLICK

if(condition) 
    getIntent().putExtra("theme", R.style.AppTheme2); 
    else 
    getIntent().putExtra("theme", R.style.AppTheme); 

und pflegen 2 Thema

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary"></item></style> 

und das zweite Thema ähnlich wie es gerade den als BaseTheme2 Namen ändern.

Es wird jedoch nicht empfohlen, das App-Design zur Laufzeit zu ändern.

+0

Es gibt keine 'Absicht' in der Frage. Die Farbe kommt vom Knopfklick-Ereignis. –

Verwandte Themen