Komplettes Farbschema während der Laufzeit verändern

  • Hallo,


    ich habe da eine Idee. Weiss aber noch nicht wie ich sie umsetzen kann. Ich möchte in meiner App dem Benutzer die Möglichkeit geben verschiede Farbschemen zu verwenden. Ich habe alle meine Farben in einer Resourcendatei abgelegt. Das einfachste wäre ja währende der Laufzeit das gewählte Schema aus einer SQL Datei auszulesen und bei Änderung, korrigiert zurückzuschreiben und dann die color Resource zu ändern. Aber scheinbar ist das nicht möglich oder doch? Vielleicht hat ja jemand auch eine sinnvollere Idee dazu?


    Gruß Renato

  • Hi oldworrior,


    wie wär es denn damit:


    - alle möglichen "Farbschemata" stehen in der Resourcendatei
    - du erweiterest deine Anwendung um die eine PreferenceActivity.in der Regel nutzt man diese Activtiy um den User die Möglichkeit zu geben Einstellungen in der Anwendung vorzunehmen
    - wenn nun deine Anwendung startet lässt du entweder die Default Farben(User hat keine Einstellung gemacht) oder die vom User eingestellten laden


    So müsstest du dann auf die Farbe zugreifen können:

    Java
    final SharedPreferences einstellungen = context.getSharedPreferences(context.getPackageName() + "_preferences", MODE_PRIVATE);
    
    
    String farbe =  einstellungen.getString("User_Farbe", null);


    mfg Titus

  • Hallo Titus,


    danke erst einmal für deine Antwort.
    Wenn ich das aber richtig aus deiner Antwort rauslese muss ich dann bei jedem Start einer Activity die Farben für z.Bsp. Hintergrund über das auslesen zuweisen. Oder? Da meine App derzeit ungefähr aus 15 Activitys besteht ist das natürlich ein Haufen Arbeit. Ich habe ja derzeit alle Farben aus der Recoucen Datei in meinen xml-Layout-Dateien verknüpft. Der Arbeitsaufwand, die 3 Farben in der Color Datei zu überschreiben, wäre auf jeden Fall weniger.
    Vielleicht verstehe ich ja auch was nicht richtig.


    M.f.G.


    Renato

  • Hi oldwarrior,


    Zitat


    Wenn ich das aber richtig aus deiner Antwort rauslese muss ich dann bei jedem Start einer Activity die Farben für z.Bsp. Hintergrund über das auslesen zuweisen.


    Also das auslesen muss nicht unbedingt in jeder Activity erfolgen kann ja auch einmalig beim starten der Anwendung gemacht werden.
    Aber um das jedesmal neue setzen der Farben wirst du wohl nicht herum kommen.


    Zitat


    die 3 Farben in der Color Datei zu überschreiben


    wenn diese "Color datei" sich im res Ordner befindet wird das nicht gehen... mir ist jedenfalls nicht bekannt das man aus der Anwendung schreibend auf den res Ordner zugreifen kann.


    Mfg Titus

Jetzt mitmachen!

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