Изменить цвет текста текущего дня в режиме просмотра календаря - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь сделать следующий стиль в моем CalendarView:

enter image description here

Что мне удалось сделать, это:

enter image description here

Дело в том, что цвет даты, на которой я стою, белый, а маркер также белый.

Как я могу изменитьнапример, цвет этого конкретного дня на черный?

Мой xml:

<CalendarView
    android:id="@+id/cv_BorrowCalendar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/cv_background"
    android:theme="@style/CalenderViewCustom"
    android:dateTextAppearance="@style/CalenderViewDateCustomText"
    android:weekDayTextAppearance="@style/CalenderViewWeekCustomText"
    app:layout_constraintBottom_toTopOf="@+id/bottom_navigation"
    app:layout_constraintTop_toBottomOf="@+id/rv_Borrowing" />

и в стилях:

<!-- Calendar -->
<style name="CalenderViewCustom" parent="Theme.AppCompat">
    <item name="colorAccent">@color/colorWhite</item>
    <item name="colorPrimary">@color/colorWhite</item>
</style>

<style name="CalenderViewDateCustomText" parent="android:TextAppearance.DeviceDefault.Small">
    <item name="android:textColor">@color/colorWhite</item>
    <item name="android:weekNumberColor">@color/colorLightPurple</item>
</style>

<style name="CalenderViewWeekCustomText" parent="android:TextAppearance.DeviceDefault.Small">
    <item name="android:textColor">@color/colorWhite</item>
</style>

Также, если есть способ изменитьназвания дней солнцу вместо s или mon вместо m было бы неплохо узнать =] Спасибо

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

Опция 1:

Установить стиль в CalendarView

<CalendarView
    android:id="@+id/calendarView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:theme="@style/CalenderViewCustom"
    android:dateTextAppearance="@style/CalenderViewDateCustomText"
    android:weekDayTextAppearance="@style/CalenderViewWeekCustomText" />

Внутри Style.xml

<style name="CalenderViewCustom" parent="Theme.AppCompat">
    <item name="colorAccent">@color/red</item>
    <item name="colorPrimary">@color/white</item>
</style>

<style name="CalenderViewDateCustomText" parent="android:TextAppearance.DeviceDefault.Small">
    <item name="android:textColor">@color/white</item>
    <item name="android:weekNumberColor">@color/red</item>
</style>

<style name="CalenderViewWeekCustomText" parent="android:TextAppearance.DeviceDefault.Small">
    <item name="android:textColor">@color/white</item>
</style>

Вариант 2:

android:theme="@style/testTheme"

Используйте эту тему или пользовательскую тему, родительская тема которой есть.

Чтобы сделать ее белой

Чтобы выбрать, кроме белого, измените цвет, используйте следующие

android:textColorPrimary="@color/yourColor"

или другие цвета текста используйте следующие

<CalendarView
    android:weekDayTextAppearance="@style/weekDayTextAppearance"
    android:dateTextAppearance="@style/appTextAppearance"
    android:unfocusedMonthDateColor="@color/colorLoginBtn"
    android:selectedWeekBackgroundColor="@color/colorLoginBtn"
    android:weekSeparatorLineColor="@color/colorLoginBtn"
    android:focusedMonthDateColor="@color/colorLoginBtn"
    android:weekNumberColor="@color/colorLoginBtn"/>
0 голосов
/ 01 ноября 2019

Попробуйте следующий код:

<CalendarView
    android:id="@+id/cv_BorrowCalendar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/cv_background"
    android:theme="@style/CalenderViewCustom"
    android:weekDayTextAppearance="@style/CalenderViewWeekCustomText"/>

Вывод с использованием кода выше:

enter image description here Я надеюсь, что это работает для вас

...