Skip to content

Commit 7c8a13a

Browse files
author
hzwangchenyan
committed
修改默认值
1 parent cc1e3ae commit 7c8a13a

File tree

1 file changed

+40
-35
lines changed

1 file changed

+40
-35
lines changed

lrcview/src/main/java/me/wcy/lrcview/LrcView.java

+40-35
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
* Created by wcy on 2015/11/9.
3030
*/
3131
public class LrcView extends View {
32-
private List<Entry> mEntryList = new ArrayList<>();
32+
private List<LrcEntry> mLrcEntryList = new ArrayList<>();
3333
private TextPaint mPaint = new TextPaint();
3434
private float mTextSize;
3535
private float mDividerHeight;
@@ -58,15 +58,15 @@ public LrcView(Context context, AttributeSet attrs, int defStyleAttr) {
5858

5959
private void init(AttributeSet attrs) {
6060
TypedArray ta = getContext().obtainStyledAttributes(attrs, R.styleable.LrcView);
61-
mTextSize = ta.getDimension(R.styleable.LrcView_lrcTextSize, sp2px(16));
62-
mDividerHeight = ta.getDimension(R.styleable.LrcView_lrcDividerHeight, dp2px(24));
61+
mTextSize = ta.getDimension(R.styleable.LrcView_lrcTextSize, sp2px(12));
62+
mDividerHeight = ta.getDimension(R.styleable.LrcView_lrcDividerHeight, dp2px(16));
6363
mAnimationDuration = ta.getInt(R.styleable.LrcView_lrcAnimationDuration, 1000);
6464
mAnimationDuration = mAnimationDuration < 0 ? 1000 : mAnimationDuration;
6565
mNormalColor = ta.getColor(R.styleable.LrcView_lrcNormalTextColor, 0xFFFFFFFF);
6666
mCurrentColor = ta.getColor(R.styleable.LrcView_lrcCurrentTextColor, 0xFFFF4081);
6767
mLabel = ta.getString(R.styleable.LrcView_lrcLabel);
6868
mLabel = TextUtils.isEmpty(mLabel) ? "暂无歌词" : mLabel;
69-
mLrcPadding = ta.getDimension(R.styleable.LrcView_lrcPadding, dp2px(16));
69+
mLrcPadding = ta.getDimension(R.styleable.LrcView_lrcPadding, 0);
7070
ta.recycle();
7171

7272
mPaint.setAntiAlias(true);
@@ -100,14 +100,14 @@ protected void onDraw(Canvas canvas) {
100100
}
101101

102102
// 画当前行
103-
float currY = centerY - mEntryList.get(mCurrentLine).getTextHeight() / 2;
104-
drawText(canvas, mEntryList.get(mCurrentLine).getStaticLayout(), currY);
103+
float currY = centerY - mLrcEntryList.get(mCurrentLine).getTextHeight() / 2;
104+
drawText(canvas, mLrcEntryList.get(mCurrentLine).getStaticLayout(), currY);
105105

106106
// 画当前行上面的
107107
mPaint.setColor(mNormalColor);
108108
float upY = currY;
109109
for (int i = mCurrentLine - 1; i >= 0; i--) {
110-
upY -= mDividerHeight + mEntryList.get(i).getTextHeight();
110+
upY -= mDividerHeight + mLrcEntryList.get(i).getTextHeight();
111111

112112
if (mAnimator == null || !mAnimator.isStarted()) {
113113
// 动画已经结束,超出屏幕停止绘制
@@ -116,7 +116,7 @@ protected void onDraw(Canvas canvas) {
116116
}
117117
}
118118

119-
drawText(canvas, mEntryList.get(i).getStaticLayout(), upY);
119+
drawText(canvas, mLrcEntryList.get(i).getStaticLayout(), upY);
120120

121121
// 动画未结束,超出屏幕多绘制一行
122122
if (upY < 0) {
@@ -125,23 +125,23 @@ protected void onDraw(Canvas canvas) {
125125
}
126126

127127
// 画当前行下面的
128-
float downY = currY + mEntryList.get(mCurrentLine).getTextHeight() + mDividerHeight;
129-
for (int i = mCurrentLine + 1; i < mEntryList.size(); i++) {
128+
float downY = currY + mLrcEntryList.get(mCurrentLine).getTextHeight() + mDividerHeight;
129+
for (int i = mCurrentLine + 1; i < mLrcEntryList.size(); i++) {
130130
if (mAnimator == null || !mAnimator.isStarted()) {
131131
// 动画已经结束,超出屏幕停止绘制
132-
if (downY + mEntryList.get(i).getTextHeight() > getHeight()) {
132+
if (downY + mLrcEntryList.get(i).getTextHeight() > getHeight()) {
133133
break;
134134
}
135135
}
136136

137-
drawText(canvas, mEntryList.get(i).getStaticLayout(), downY);
137+
drawText(canvas, mLrcEntryList.get(i).getStaticLayout(), downY);
138138

139139
// 动画未结束,超出屏幕多绘制一行
140-
if (downY + mEntryList.get(i).getTextHeight() > getHeight()) {
140+
if (downY + mLrcEntryList.get(i).getTextHeight() > getHeight()) {
141141
break;
142142
}
143143

144-
downY += mEntryList.get(i).getTextHeight() + mDividerHeight;
144+
downY += mLrcEntryList.get(i).getTextHeight() + mDividerHeight;
145145
}
146146
}
147147

@@ -230,15 +230,15 @@ public void updateTime(long time) {
230230
if (time < mNextTime) {
231231
return;
232232
}
233-
for (int i = mCurrentLine; i < mEntryList.size(); i++) {
234-
if (mEntryList.get(i).getTime() > time) {
235-
mNextTime = mEntryList.get(i).getTime();
233+
for (int i = mCurrentLine; i < mLrcEntryList.size(); i++) {
234+
if (mLrcEntryList.get(i).getTime() > time) {
235+
mNextTime = mLrcEntryList.get(i).getTime();
236236
mCurrentLine = i < 1 ? 0 : i - 1;
237237
newlineAnimate(i);
238238
break;
239-
} else if (i == mEntryList.size() - 1) {
239+
} else if (i == mLrcEntryList.size() - 1) {
240240
// 最后一行
241-
mCurrentLine = mEntryList.size() - 1;
241+
mCurrentLine = mLrcEntryList.size() - 1;
242242
mNextTime = Long.MAX_VALUE;
243243
newlineAnimate(i);
244244
break;
@@ -252,10 +252,15 @@ public void updateTime(long time) {
252252
* @param time 指定的时间
253253
*/
254254
public void onDrag(long time) {
255-
for (int i = 0; i < mEntryList.size(); i++) {
256-
if (mEntryList.get(i).getTime() > time) {
257-
mNextTime = mEntryList.get(i).getTime();
258-
mCurrentLine = i < 1 ? 0 : i - 1;
255+
for (int i = 0; i < mLrcEntryList.size(); i++) {
256+
if (mLrcEntryList.get(i).getTime() > time) {
257+
if (i == 0) {
258+
mCurrentLine = i;
259+
initNextTime();
260+
} else {
261+
mCurrentLine = i - 1;
262+
mNextTime = mLrcEntryList.get(i).getTime();
263+
}
259264
newlineAnimate(i);
260265
break;
261266
}
@@ -268,11 +273,11 @@ public void onDrag(long time) {
268273
* @return true,如果歌词有效,否则false
269274
*/
270275
public boolean hasLrc() {
271-
return !mEntryList.isEmpty();
276+
return !mLrcEntryList.isEmpty();
272277
}
273278

274279
private void reset() {
275-
mEntryList.clear();
280+
mLrcEntryList.clear();
276281
mCurrentLine = 0;
277282
mNextTime = 0L;
278283
}
@@ -282,14 +287,14 @@ private void initEntryList() {
282287
return;
283288
}
284289

285-
for (Entry entry : mEntryList) {
286-
entry.init(mPaint, (int) getLrcWidth());
290+
for (LrcEntry lrcEntry : mLrcEntryList) {
291+
lrcEntry.init(mPaint, (int) getLrcWidth());
287292
}
288293
}
289294

290295
private void initNextTime() {
291-
if (mEntryList.size() > 1) {
292-
mNextTime = mEntryList.get(1).getTime();
296+
if (mLrcEntryList.size() > 1) {
297+
mNextTime = mLrcEntryList.get(1).getTime();
293298
} else {
294299
mNextTime = Long.MAX_VALUE;
295300
}
@@ -314,8 +319,8 @@ private void parseLine(String line) {
314319

315320
long time = min * DateUtils.MINUTE_IN_MILLIS + sec * DateUtils.SECOND_IN_MILLIS + mil * 10;
316321

317-
Entry entry = new Entry(time, text);
318-
mEntryList.add(entry);
322+
LrcEntry lrcEntry = new LrcEntry(time, text);
323+
mLrcEntryList.add(lrcEntry);
319324
}
320325

321326
/**
@@ -327,8 +332,8 @@ private void newlineAnimate(int index) {
327332
mAnimator.end();
328333
}
329334

330-
mAnimator = ValueAnimator.ofFloat(mEntryList.get(index).getTextHeight() + mDividerHeight, 0.0f);
331-
mAnimator.setDuration(mAnimationDuration * mEntryList.get(index).getStaticLayout().getLineCount());
335+
mAnimator = ValueAnimator.ofFloat(mLrcEntryList.get(index).getTextHeight() + mDividerHeight, 0.0f);
336+
mAnimator.setDuration(mAnimationDuration * mLrcEntryList.get(index).getStaticLayout().getLineCount());
332337
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
333338
@Override
334339
public void onAnimationUpdate(ValueAnimator animation) {
@@ -349,13 +354,13 @@ private int sp2px(float spValue) {
349354
return (int) (spValue * fontScale + 0.5f);
350355
}
351356

352-
private static class Entry {
357+
private static class LrcEntry {
353358
private long time;
354359
private String text;
355360
private StaticLayout staticLayout;
356361
private TextPaint paint;
357362

358-
Entry(long time, String text) {
363+
LrcEntry(long time, String text) {
359364
this.time = time;
360365
this.text = text;
361366
}

0 commit comments

Comments
 (0)