AOSPのテーマとスタイルのxmlファイルを掘り起こし、多くのグーグル・グーグルが掘り起こした後、私はいくつかの進歩を遂げました。私は今、ほとんどの(!)ものをスタイルすることができます。
これは部分的な回答ですが、まだそこまでではありません。
をあなたは解除選択した時間の一部(この場合は分)、サークル、数字、私は今ヘッダーをテーマにできるようだと見ることができます(!):しかし、ここで私が得たどのくらいですそのサークルと「手」(またはセレクタ)に表示されます。ああ、ボタンもスタイリングされています。
私は物事がどのように働いているのかを説明しましょう。重要なことは、あなたがアプリケーションのテーマから直接、または(警告)ダイアログのテーマ/スタイルから物をオーバーライドできないことです。話すには、あるものから次のものに進む必要があります。
例:
のAndroidManifest.xml:アプリおよび/または活性のため設定するカスタムテーマ
値-V21 /のstyles.xml
<activity>
android:theme="@style/Theme.MyTheme"
</activity>
:(カスタムテーマが存在する場所): timePickerDialoを定義し、timePickerDialogThemeそしてその下
<style name="Theme.MyTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:timePickerDialogTheme">@style/TimePickerDialogTheme</item>
</style>
を設定しますgThemeと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>
は今、あなたはここでスタイリングのほとんどを定義することができます。..
<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>
上記で重要な行は、次のとおりです。
<item name="android:headerTimeTextAppearance">@style/TextAppearance.TimePickerDialogStyle.TimeLabel</item>
ので、あなたが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>
Widget.Material.TimePicker in AOSP styles.xml(ctrl-f 'timepicker'が見つかるまで)を見てみると、変更できるはずの他のプロパティが気づくでしょう:
headerTimeTextAppearance headerAmPmTextAppearance headerSelectedTextColor headerBackground numbersTextColor numbersBackgroundColor amPmTextColor amPmBackgroundColor amPmSelectedBackgroundColor numbersSelectorColor
(限り、あなたは 'アンドロイド:' 前に付加としてそれらのそれぞれのために)これらの作業のほとんどが、私はできませんでした'headerSelectedTextColor'を動作させる。私は "bla blaプロパティに一致できませんでした"のようなコンパイルエラーが発生しました。また、上記の例を見ると、 '@ dimen/timepicker_ampm_label_size'値がエラーを投げたため、textSizeを 'headerTimeTextAppearance'プロパティにハードコードしました。
要するに、ほとんどのことが上にリストされており、それらを動作させる方法です。しかし、すべてが明確ではない。だから私はまだ完全なドキュメント/ガイドを参照してください:)
'アンドロイド:headerBackground'作品。私は 'android:numbersTextColor'、' android:numbersBackgroundColor'を動作させることができませんでした。 N.B .: '?colorControlActivated'('?colorAccent'から継承)は実際にハイライトを行います。 –
ありがとう:)私はいくつかの進歩を遂げましたが、ここに投稿する前にいくつかのテストとクリーンアップを行う必要があります。あなたはThemeをオーバーライドしなければならないことが分かり、次にスタイルと(もし望むなら)headerTextAppearanceが必要です。 – REJH