2015-09-20 5 views
6

私はsdk 21+(Lollipop)のTimePickerDialogをスタイル設定しようとしています。この作品Android TimePickerDialogスタイリングガイド/ドキュメント

<style name="TimePickerTheme" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="colorPrimary">#ff2d6073</item> <!-- no effect --> 
    <item name="colorPrimaryDark">#ff2d6073</item> <!-- no effect --> 
    <item name="colorAccent">#ff2d6073</item> 
    <item name="android:textColor">#ffD0D102</item> 
    <item name="android:textColorPrimary">#ffD0D102</item> 
</style> 

が、私は変更することができ、すべてのプロパティのためのガイドやドキュメントを探しています:これまでのところ私は、XMLのデフォルトのカラースキームを変更する方法を考え出しました。

  • AccentColorは、基本的なカラースキーム
  • がTextColorPrimaryは、テキストの色

しかし、どのような特性は、例えば、私が(ダイアログの[ヘッダー]に大きなテキストを変更する必要がないんありません現在選択されている時刻が表示されます)?

変更可能なすべてのものを記載したドキュメントがありますか?

+1

'アンドロイド:headerBackground'作品。私は 'android:numbersTextColor'、' android:numbersBackgroundColor'を動作させることができませんでした。 N.B .: '?colorControlActivated'('?colorAccent'から継承)は実際にハイライトを行います。 –

+0

ありがとう:)私はいくつかの進歩を遂げましたが、ここに投稿する前にいくつかのテストとクリーンアップを行う必要があります。あなたはThemeをオーバーライドしなければならないことが分かり、次にスタイルと(もし望むなら)headerTextAppearanceが必要です。 – REJH

答えて

16

AOSPのテーマとスタイルのxmlファイルを掘り起こし、多くのグーグル・グーグルが掘り起こした後、私はいくつかの進歩を遂げました。私は今、ほとんどの(!)ものをスタイルすることができます。

これは部分的な回答ですが、まだそこまでではありません。

enter image description here

をあなたは解除選択した時間の一部(この場合は分)、サークル、数字、私は今ヘッダーをテーマにできるようだと見ることができます(!):しかし、ここで私が得たどのくらいですそのサークルと「手」(またはセレクタ)に表示されます。ああ、ボタンもスタイリングされています。

私は物事がどのように働いているのかを説明しましょう。重要なことは、あなたがアプリケーションのテーマから直接、または(警告)ダイアログのテーマ/スタイルから物をオーバーライドできないことです。話すには、あるものから次のものに進む必要があります。

例:

の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'プロパティにハードコードしました。

要するに、ほとんどのことが上にリストされており、それらを動作させる方法です。しかし、すべてが明確ではない。だから私はまだ完全なドキュメント/ガイドを参照してください:)

+0

あなたはhour_hand色をどのように管理しましたか? –

+0

私はそれがnumberSelectorプロパティだと思います。私は携帯電話にいるので、正しくチェックできません – REJH

+0

numberSelectorを変更しましたが、手の色は変更しません。 –

0

AndroidのTimePickerの素材のスタイルは、以下のカスタム色で表示されます。http://www.zoftino.com/android-timepicker-exampleはTimePickerの使用方法とスタイルです。

<style name="MyAppThemeFour" parent="Theme.AppCompat.Light"> 
    <item name="android:timePickerDialogTheme">@style/MyTimePickerDialogStyle</item> 
</style> 

<style name="MyTimePickerDialogStyle" parent="@style/ThemeOverlay.AppCompat.Dialog.Alert"> 
<item name="showTitle">false</item> 
<item name="colorControlActivated">#ffd600</item> 
<item name="colorAccent">#b71c1c</item> 
<item name="android:textColorPrimary">#43a047</item> 
<item name="android:textColorSecondary">#f44336</item> 
</style> 

Android TimePicker material style custom color from zoftino.com

関連する問題