Skip to content

Commit 608d91f

Browse files
committed
Fixed event drawing for events with short heights
1 parent 7d5f95e commit 608d91f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

library/src/main/java/com/alamkanak/weekview/WeekView.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,12 +496,18 @@ private void drawText(String text, RectF rect, Canvas canvas, float originalTop,
496496
StaticLayout mTextLayout = new StaticLayout(text, mEventTextPaint, (int) (rect.right - originalLeft - mEventPadding * 2), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
497497

498498
// Crop height
499-
if (mTextLayout.getHeight() > rect.height() - mEventPadding * 2) {
499+
int availableHeight = (int) (rect.bottom - originalTop - mEventPadding * 2);
500+
int lineHeight = mTextLayout.getHeight() / mTextLayout.getLineCount();
501+
if (lineHeight < availableHeight && mTextLayout.getHeight() > rect.height() - mEventPadding * 2) {
500502
int lineCount = mTextLayout.getLineCount();
501-
int availableLineCount = (int) Math.floor(lineCount * (rect.bottom - originalTop - mEventPadding * 2) / mTextLayout.getHeight());
503+
int availableLineCount = (int) Math.floor(lineCount * availableHeight / mTextLayout.getHeight());
502504
float widthAvailable = (rect.right - originalLeft - mEventPadding * 2) * availableLineCount;
503505
mTextLayout = new StaticLayout(TextUtils.ellipsize(text, mEventTextPaint, widthAvailable, TextUtils.TruncateAt.END), mEventTextPaint, (int) (rect.right - originalLeft - mEventPadding * 2), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
504506
}
507+
else if (lineHeight >= availableHeight) {
508+
int width = (int) (rect.right - originalLeft - mEventPadding * 2);
509+
mTextLayout = new StaticLayout(TextUtils.ellipsize(text, mEventTextPaint, width, TextUtils.TruncateAt.END), mEventTextPaint, width, Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, false);
510+
}
505511

506512
// Draw text
507513
canvas.save();

0 commit comments

Comments
 (0)