Abwärtskompatibilität und style

  • 1 Antworten
  • Letztes Antwortdatum
P

PsychoCat

Neues Mitglied
0
Hallo zusammen!

Wie der Titel schon sagt, beschäftige ich mich gerade damit, ob und inwiefern die eigene app kompatibel mit alten android Versionen sein sollte und wie das ganze mit den styles zusammen passt. Als ich angefangen habe, meine app zu schreiben, habe ich einfach Standard-Einstellungen von eclipse verwendet und so die minSDK Version auf 11 gesetzt. Dadurch hat eclipse für ein Holo Theme <style name="AppBaseTheme" parent="Theme.AppCompat"> festgelegt und alle activities von ActionBarActivity abgeleitet, die ja offenbar in dieser Hilfsbibliothek steht, die eclipse ebenfalls importiert hat - in das ganze Projekt und dann in die jeweiligen activities via
import android.support.v7.app.ActionBarActivity;

Nun wollte ich gerne den style eines AlertDialogs ändern, was sich leider als sehr viel schwieriger herausgestellt hat als angenommen. Genauer gesagt wollte ich eigentlich nur die Farbe des Titels und dieses Streifens darunter ändern, ist aktuell hellblau. Ich habe dazu einen neuen style festgelegt (ganz komische Farben, einfach mal zum testen)

<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:bottomBright">#FFFFFF</item>
<item name="android:bottomDark">#6495ED</item>
<item name="android:bottomMedium">#483D8B</item>
<item name="android:centerBright">#6A5ACD</item>
<item name="android:centerDark">#0000CD</item>
<item name="android:centerMedium">#3E90FF</item>
<item name="android:fullBright">#00BFFF</item>
<item name="android:fullDark">#4682B4</item>
<item name="android:topBright">#B0C4DE</item>
<item name="android:topDark">#5F9EA0</item>
<item name="android:textColor">#E5492A</item>
</style>


und den style im builder eingetragen

AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this,R.style.CustomDialogTheme);

Was nun passiert, ist, dass die Farben nicht übernommen werden, dafür habe ich einen vom style her ganz anderen (ich glaube älteren) alertdialog. Das heißt vermutlich, dass der parent Eintrag nicht den style vererbt, der standardmäßig in meinem theme ist (?). Jetzt weiß ich gar nicht mehr weiter. Prinzipiell sehe ich zwei Möglichkeiten:


A) Ich belasse es bei dieser Kompatibilitätsverion. Dann stellen sich mir folgende Fragen:

A1. Wie finde ich heraus was ich bei parent eintragen muss, um den standard style (von diesem AppCompat theme) zu vererben?

A2. Warum werden die ganzen Farben, die ich festgelegt habe, nicht übernommen?

A3. Wie ändere ich die Farbe des Titels und des Streifens darunter? (Mein eigentliches Ziel)


B) Wenn ich minSDK auf 14 setzt, kann ich ja (glaube ich) die android holo themes verwenden und brauche nicht diese importierte Bibliothek..

B1. Macht es überhaupt Sinn seine app abwärtskompatibel vor Version 14 zu machen? Schon klar, dass das subjektiv ist, aber wollte einfach mal eure erfahrene Meinung hören und was ihr da so einstellt.

B2. Was muss ich in dem Fall alles ändern? Ich habe das mal kurz probiert und ActionBarActivity in Activity geändert und mein theme von android:Theme.Holo abgeleitet. Da ist meine app sofort abgestürzt.
 
Das ist Geschmackssache. Die Support - Library hat den Vorteil, sehr viele Handys abzudecken.

Den Style von Elementen zu ändern, die normalerweise vom System erzeugt werden, ist ein zweischneidiges Schwert. Nicht jeder möchte es, dass das Design seines Handys von einer App angepasst wird.

Hier findest du zwei Anleitungen für das Ändern des Styles der App und von Dialoge.

Action Bar | Android Developers

Dialogs | Android Developers
 
Zurück
Oben Unten