Dopo aver esplorato il tema AOSP e i file di stile xml e un sacco di google ho fatto dei progressi. Ora sono in grado di disegnare la maggior parte delle cose (!).
Quindi questa è una risposta parziale, non ancora fino ad ora. Ma ecco come lontano ho ottenuto:
Si può vedere che io sono ora in grado di tema l'intestazione, il non selezionato part-time (minuti in questo caso), il cerchio, i numeri (!) in quel cerchio e la "mano" (o selettore). Oh, e anche i pulsanti sono in stile.
Lasciatemi spiegare come sono riuscito a far funzionare le cose, in primo luogo: l'importante è che non è possibile ignorare le cose direttamente dal tema dell'app o da un tema/stile di una finestra (di avviso). Devi andare da uno all'altro, per così dire.
Esempio:
AndroidManifest.xml: Impostare tema personalizzato per app e/o attività
<activity>
android:theme="@style/Theme.MyTheme"
</activity>
valori-V21/styles.xml: (dove si trova il tema personalizzato): impostare il timePickerDialogTheme
<style name="Theme.MyTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:timePickerDialogTheme">@style/TimePickerDialogTheme</item>
</style>
Poi sotto, definire il timePickerDialo gTheme e impostare la timePickerStyle:
<style name="TimePickerDialogTheme" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#ff2d6073</item> <!-- colorAccent here seems to work just fine? -->
<item name="android:timePickerStyle">@style/TimePickerDialogStyle</item>
</style>
Ora è possibile definire la maggior parte del styling qui ..
<style name="TimePickerDialogStyle" parent="@android:style/Widget.Material.Light.TimePicker">
<item name="colorAccent">#ff2d6073</item> <!-- colorAccent here seems to work just fine? -->
<item name="android:timePickerMode">clock</item>
<item name="android:headerBackground">#ff2d6073</item>
<item name="android:headerTimeTextAppearance">@style/TextAppearance.TimePickerDialogStyle.TimeLabel</item> <!-- TimePicker Time *TextAppearance* -->
<item name="android:numbersTextColor">#ff000000</item>
<item name="android:numbersSelectorColor">#ff2d6073</item>
<item name="android:numbersBackgroundColor">#ffdddddd</item>
</style>
La linea importante quanto sopra è:
<item name="android:headerTimeTextAppearance">@style/TextAppearance.TimePickerDialogStyle.TimeLabel</item>
Perché se si vuole per lo stile del testo (bene, il tempo, in realtà) nell'intestazione è necessario definire il headerTimeTextAppearance:
<style name="TextAppearance.TimePickerDialogStyle.TimeLabel" parent="@android:style/TextAppearance.Material">
<item name="android:textSize">60sp</item> <!-- from -->
<item name="android:textColor">#ffD0D102</item>
</style>
Ora, se dai un'occhiata allo Widget.Material.TimePicker in AOSP styles.xml (ctrl-f 'timepicker' finché non lo trovi) noterai un sacco di altre proprietà che dovresti essere in grado di modificare:
headerTimeTextAppearance headerAmPmTextAppearance headerSelectedTextColor headerBackground numbersTextColor numbersBackgroundColor amPmTextColor amPmBackgroundColor amPmSelectedBackgroundColor numbersSelectorColor
La maggior parte di questi lavori (a patto che si antepone 'Android:' per ciascuno di essi) ma non ho potuto ottieni 'headerSelectedTextColor' per funzionare. Ho ricevuto un errore di compilazione che diceva qualcosa come "non può corrispondere alla proprietà bla bla". Inoltre, se si guarda il mio esempio sopra, ho hardcoded il textSize per la proprietà 'headerTimeTextAppearance' perché il valore '@ dimen/timepicker_ampm_label_size' ha generato degli errori.
In breve: la maggior parte delle cose sono elencate sopra e come farle funzionare. Ma non tutto è chiaro. Quindi vedrei ancora quella documentazione completa/guida :)
'Android: funziona headerBackground'. Non ero in grado di eseguire il lavoro 'android: numbersTextColor',' android: numbersBackgroundColor'. N.B .: '? ColorControlActivated' (ereditato da'? ColorAccent') fa effettivamente i punti salienti. –
Grazie :) Ho fatto qualche progresso ma ho bisogno di fare qualche test e pulizia prima di postarlo qui. Si scopre che è necessario sovrascrivere il tema, quindi lo stile e (se lo si desidera) l'intestazioneTextAppearance. – REJH