我正在使用Alamkanak's Week View Library。它很棒,但我想要添加到我的应用程序的特定功能有问题。它需要看起来像这样:
但是这个日历在01:00开始显示时间,并在第二天一直到00:00。我希望只显示对我很重要的时间:从09:00到20:00。 我也搜索了很多,甚至找到same topic here,但仍然没有解决方案。
无论如何,任何帮助将不胜感激。此外,如果您可以推荐另一个用于显示此类事件的库(我不太喜欢Google日历),它也可能具有很高的价值。先谢谢你们。
答案 0 :(得分:2)
事实证明这很简单(在我的吼叫说明中,我已经在07:00 - 19:00之前离开了)
首先复制WeekView类并在项目中创建一个新的WeekView类。enter link description here 其次,假设您已获得XML,则需要将其更改为 反映新创建的类以及我们想要使用它而不是默认类的事实。
然后在您的新WeekView课程中,您将需要
import com.alamkanak.weekview.DateTimeInterpreter;
import com.alamkanak.weekview.MonthLoader;
import com.alamkanak.weekview.WeekViewEvent;
import com.alamkanak.weekview.WeekViewLoader;
之后,在private void initTextTimeWidth()方法中,您需要将for循环更新为
for (int i = 0; i < 12; i++) {
然后在private void drawTimeColumnAndAxes(Canvas canvas)方法中,你需要改变一些事情:
for (int i = 0; i < 12; i++) {
...
String time = getDateTimeInterpreter().interpretTime(i+7); //This will set the correct display hour digits
在下一个方法drawHeaderRowAndEvents中,更新:
mEffectiveMinHourHeight= Math.max(mMinHourHeight, (int) ((getHeight() - mHeaderTextHeight - mHeaderRowPadding * 2 - mHeaderMarginBottom) / 12));
还有另一个需要更新的for循环
for (int hourNumber = 0; hourNumber < 12; hourNumber++) {
最后
float top = mHourHeight * 12 * mEventRects.get(i).top / 1440 + mCurrentOrigin.y + mHeaderTextHeight + mHeaderRowPadding * 2 + mHeaderMarginBottom + mTimeTextHeight/2 + mEventMarginVertical;
bottom = mHourHeight * 12 * bottom / 1440 + mCurrentOrigin.y + mHeaderTextHeight + mHeaderRowPadding * 2 + mHeaderMarginBottom + mTimeTextHeight/2 - mEventMarginVertical;
基本上是全班24小时,然后根据自己喜欢的内容进行更新,在我的情况下是12,因为我要花12小时的时间来展示并添加多少小时你想要的,对应你在String time中的第一个开始时间= getDateTimeInterpreter()。interpretTime(i + 7)
Here's a paste bin可视化上面的所有废话,左边是原始类,右边是我的
答案 1 :(得分:1)
我正在使用相同的库,我尝试过一次类似的东西。我可以建议将goToHour(double);
设置为你的第一个事件的开始时间,而不是用这样的东西来缩放小时的高度以匹配你上一个事件的结束时间:
int height = weekView.getMeasuredHeight();
int textSize = weekView.getTextSize();
int padding = weekView.getHeaderRowPadding();
height = height - textSize - (2 * padding);
weekView.setHourHeight(height / 24);
编辑:我使用此代码在周视图中查看整个0-24。我认为调整这个可以得到你想要的东西。