当前位置: 首页 > 知识库问答 >
问题:

Android日历查看日期颜色

孟浩然
2023-03-14

我有一个日期列表,我想在calendarview上用红色显示。我该怎么办?

我的活动...

public class Calendario extends Activity {

    RelativeLayout rl;
    final Calendar calendar = Calendar.getInstance();
    CalendarView cal;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calendar);

        rl = (RelativeLayout) findViewById(R.id.rl);
        cal = new CalendarView(Calendario.this);

        rl.addView(cal);
        cal.setOnDateChangeListener(new OnDateChangeListener() {

        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month,
                int dayOfMonth) {
            // TODO Auto-generated method stub

        }
    });
    }


}

为了给日期上色,我必须添加什么代码?

共有3个答案

岳曦
2023-03-14
android:theme="@style/testTheme"

使用此主题或具有父主题的自定义主题作为此主题。

把它变成白色

要选择除白色以外的其他颜色,请使用以下命令更改颜色

android:textColorPrimary="@color/yourColor"

对于其他文本颜色,请使用以下颜色

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"
龙德润
2023-03-14

试试这个。希望这有帮助

android:weekDayTextAppearance="@style/CalendarWeekDateText"


<style name="CalendarWeekDatText" parent="TextAppearance.AppCompat.Button">
    <item name="android:textColor">#000000</item>
</style>
池俊茂
2023-03-14

您最好的选择可能是根据此处找到的源代码创建自己的CalendarView类,即CalendarViewCustom。

然后,您可以向LegacyCalendarView委托类添加一个额外的方法,类似于setFocus usedMonthDateColor()方法,以迭代周,并在周末视图类中设置日期和颜色(可能值得将这些键/值日期/颜色存储为周末视图中的Map集合实例变量类)。

public void setMonthDateColor(Date date, int color) {                
    final int childCount = mListView.getChildCount();
    for (int i = 0; i < childCount; i++) {
        WeekView weekView = (WeekView) mListView.getChildAt(i);
        if (weekView.isDateInWeek(date)) {
            //this method adds the date and colour to a 
            //Map collection in weekView Object 
            weekView.setDateColour(date, color);
        }
    }
}

然后,需要通过向父类CalendarViewCustom(类似于其现有方法)添加另一个方法来公开上述方法,然后可以在类的实例上调用该方法,即。

public int setMonthDateColor(Date date, int color) {
    return mDelegate.getMonthDateColor(date, color);
}

然后,您所需要做的就是使用现有的for循环(for(; i)为指定的日期在被称为 然后,在周视图类方法中为指定的日期在画布上绘制列出的颜色

希望这能为你指明正确的方向。

 类似资料:
  • 我目前正在尝试这样做,当我在日历视图中选择一天时,该天的所有事件都会列出。我很难让它显示一天中的所有事件(看起来它在上午12点到11点59分不起作用?)。这里是我目前拥有的。 和 如果我有12am-11:59am的事件1和12pm-11:59pm的事件2,则仅列出事件2。

  • 我正在做一个应用程序,我想添加一个日历视图。我只想用日、月和年来标记一些特定的日期。我创建了MCalendarView库,但我不喜欢它的设计。 有人知道如何在常规CalendarView中标记日期或改进MCalendarView的设计? 谢谢你抽出时间。

  • git log命令可以显示所有的提交(commit)。 ...... $ git log v2.5.. # commits since (not reachable from) v2.5 $ git log test..master # commits reachable from master but not test $ git log master..test # comm

  • 但我可以改变它 我指望你的帮助

  • 我的目标是找到一个Android库,它允许我基于数组在日历视图上标记各种日期。日期可能是连续的,也可能不是连续的。我的理想方案是更改每个日期的背景色。重要的复杂性是,我直到运行时才知道这个颜色,因为它来自服务器查询。 我一整天都在研究这个,我最大的希望似乎是(github)。然而,我发现他们的代码有些难以理解,这是我的责任,但我完全卡住了。 我在XML布局中添加了如下日历: 然后在我的活动中,我有

  • 我正在寻找确切的开始和结束日期根据我们的桌面日历,如果我给周,年作为输入。但是上面的代码给出的输出是2009年1月27日星期日。我知道这是因为按照我们的说法,一周的第一天默认是星期天,但我需要按照桌面日历