Skip to content

Commit e716905

Browse files
committed
release v1.0.1
1 parent 21f5f7f commit e716905

File tree

10 files changed

+62
-54
lines changed

10 files changed

+62
-54
lines changed

app/src/main/java/moe/codeest/enviewsdemo/ScrollActivity.java

+8-12
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,22 @@
1414
public class ScrollActivity extends Activity{
1515

1616
ENScrollView scrollView;
17-
Button btnSelect;
18-
Button btnUnSelect;
17+
Button btnSwitch;
1918

2019
@Override
2120
protected void onCreate(Bundle savedInstanceState) {
2221
super.onCreate(savedInstanceState);
2322
setContentView(R.layout.activity_scroll);
2423
scrollView = (ENScrollView) findViewById(R.id.view_scroll);
25-
btnSelect = (Button) findViewById(R.id.btn_select);
26-
btnUnSelect = (Button) findViewById(R.id.btn_unselect);
27-
btnSelect.setOnClickListener(new View.OnClickListener() {
24+
btnSwitch = (Button) findViewById(R.id.btn_switch);
25+
btnSwitch.setOnClickListener(new View.OnClickListener() {
2826
@Override
2927
public void onClick(View view) {
30-
scrollView.select();
31-
}
32-
});
33-
btnUnSelect.setOnClickListener(new View.OnClickListener() {
34-
@Override
35-
public void onClick(View view) {
36-
scrollView.unSelect();
28+
if (scrollView.isSelected()) {
29+
scrollView.unSelect();
30+
} else {
31+
scrollView.select();
32+
}
3733
}
3834
});
3935
}

app/src/main/res/layout/activity_play.xml

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818
app:play_bg_line_width="12"/>
1919

2020
<Button
21-
android:id="@+id/btn_pause"
21+
android:id="@+id/btn_play"
2222
android:layout_width="wrap_content"
2323
android:layout_height="wrap_content"
24-
android:text="pause"
24+
android:text="play"
2525
android:layout_marginTop="20dp" />
2626

2727
<Button
28-
android:id="@+id/btn_play"
28+
android:id="@+id/btn_pause"
2929
android:layout_width="wrap_content"
3030
android:layout_height="wrap_content"
31-
android:text="play"
31+
android:text="pause"
3232
android:layout_marginTop="20dp" />
3333

3434
</LinearLayout>

app/src/main/res/layout/activity_scroll.xml

+5-10
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,15 @@
1515
app:scroll_line_color="#ffffff"
1616
app:scroll_bg_line_color="#444a4f"
1717
app:scroll_line_width="10"
18-
app:scroll_bg_line_width="10"/>
18+
app:scroll_bg_line_width="10"
19+
app:scroll_is_selected="false"
20+
app:scroll_view_translation_x="16"/>
1921

2022
<Button
21-
android:id="@+id/btn_select"
23+
android:id="@+id/btn_switch"
2224
android:layout_width="wrap_content"
2325
android:layout_height="wrap_content"
24-
android:text="select"
25-
android:layout_marginTop="20dp" />
26-
27-
<Button
28-
android:id="@+id/btn_unselect"
29-
android:layout_width="wrap_content"
30-
android:layout_height="wrap_content"
31-
android:text="unselect"
26+
android:text="switch"
3227
android:layout_marginTop="20dp" />
3328

3429
</LinearLayout>

app/src/main/res/layout/activity_volume.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
android:layout_marginTop="20dp"
1515
app:volume_line_color="#ffffff"
1616
app:volume_line_width="10"
17-
app:volume_bg_line_color="#4f5559"
17+
app:volume_bg_line_color="#64696d"
1818
app:volume_bg_line_width="10"/>
1919

2020
<SeekBar

library/src/main/java/moe/codeest/enviews/ENDownloadView.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
150150
protected void onDraw(Canvas canvas) {
151151
super.onDraw(canvas);
152152
switch (mCurrentState) {
153-
case STATE_PRE:
153+
case STATE_PRE: //嗷~ 开始阶段:线弹起小球
154154
if (mFraction <= 0.4) {
155155
canvas.drawCircle(mCenterX, mCenterY ,mCircleRadius, mBgPaint);
156156
canvas.drawLine(mCenterX - mBaseLength, mCenterY, mCenterX, mCenterY + mBaseLength, mPaint);
@@ -172,7 +172,7 @@ protected void onDraw(Canvas canvas) {
172172
canvas.drawLine(mCenterX - mBaseLength * 2.2f , mCenterY , mCenterX + mBaseLength * 2.2f, mCenterY, mPaint);
173173
}
174174
break;
175-
case STATE_DOWNLOADING:
175+
case STATE_DOWNLOADING: //嗷~ 下载阶段:波浪线与文字
176176
if (mFraction <= 0.2) {
177177
mTextPaint.setTextSize(mTextSize / 0.2f * mFraction);
178178
}
@@ -195,7 +195,7 @@ protected void onDraw(Canvas canvas) {
195195
canvas.drawText(String.format("%.2f", mCurrentSize) + getUnitStr(mUnit), mCenterX , mCenterY + 1.4f * mBaseLength , mTextPaint);
196196
}
197197
break;
198-
case STATE_END:
198+
case STATE_END: //嗷~ 结束阶段:线变勾
199199
canvas.drawCircle(mCenterX, mCenterY ,mCircleRadius, mPaint);
200200
if (mFraction <= 0.5) {
201201
mTextPaint.setTextSize(mTextSize - mTextSize / 0.2f * mFraction);
@@ -210,7 +210,7 @@ protected void onDraw(Canvas canvas) {
210210
canvas.drawLine(mCenterX - mBaseLength * 0.5f, mCenterY + mBaseLength * 0.5f * mFraction * 1.3f,
211211
mCenterX + mBaseLength * 2.2f - mBaseLength * mFraction, mCenterY - mBaseLength * mFraction * 1.3f, mPaint);
212212
break;
213-
case STATE_RESET:
213+
case STATE_RESET: //嗷~ 复位阶段:勾变箭头
214214
canvas.drawCircle(mCenterX, mCenterY ,mCircleRadius, mBgPaint);
215215
canvas.drawLine(mCenterX - mBaseLength, mCenterY,
216216
mCenterX - mBaseLength * 0.5f + mBaseLength * 0.5f * mFraction, mCenterY + mBaseLength * 0.65f + mBaseLength * 0.35f * mFraction, mPaint);

library/src/main/java/moe/codeest/enviews/ENLoadingView.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public ENLoadingView(Context context, AttributeSet attrs) {
5353
mPaint = new Paint[4];
5454
mBeerPaint = new Paint[4];
5555
mBubblePaint = new Paint[4];
56+
mPath = new Path();
57+
mBgPath = new Path();
5658
isItemReady = new boolean[4];
5759

5860
for (int i = 0; i< 4 ; i++) {
@@ -110,7 +112,8 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
110112
for (int i = 0; i < 4 ;i++) {
111113
mCurrentRippleX[i] = - 2 * mBgBaseLength;
112114
}
113-
mPath = new Path();
115+
116+
mPath.reset();
114117
mPath.moveTo(0, mCenterY + 2 * mBaseLength);
115118
mPath.lineTo(0, mCenterY);
116119
mPath.lineTo(mBaseLength / 4, mCenterY - mBaseLength);
@@ -121,8 +124,6 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
121124
mPath.lineTo(mBaseLength, mCenterY + 2 * mBaseLength);
122125
mPath.close();
123126

124-
mBgPath = new Path();
125-
126127
setAlpha(0);
127128
}
128129

library/src/main/java/moe/codeest/enviews/ENScrollView.java

+20-6
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public class ENScrollView extends View {
3636

3737
private static final int DEFAULT_DURATION = 700;
3838

39+
private static final int DEFAULT_VIEW_TRANSLATION_X = 16;
40+
41+
private static final boolean DEFAULT_STATE = false;
42+
3943
private int mCurrentState = STATE_UNSELECT;
4044

4145
private int mCurrentColor = DEFAULT_LINE_COLOR;
@@ -58,7 +62,7 @@ public class ENScrollView extends View {
5862

5963
private float mPathLength;
6064

61-
private int mLineColor, mBgLineColor, mDuration;
65+
private int mLineColor, mBgLineColor, mDuration, mViewTranslationX;
6266

6367
public ENScrollView(Context context) {
6468
super(context);
@@ -72,6 +76,8 @@ public ENScrollView(Context context, AttributeSet attrs) {
7276
int lineWidth = ta.getInteger(R.styleable.scroll_scroll_line_width, DEFAULT_LINE_WIDTH);
7377
int bgLineColor = ta.getInteger(R.styleable.scroll_scroll_bg_line_color, DEFAULT_BG_LINE_COLOR);
7478
int bgLineWidth = ta.getInteger(R.styleable.scroll_scroll_bg_line_width, DEFAULT_BG_LINE_WIDTH);
79+
boolean isSelected = ta.getBoolean(R.styleable.scroll_scroll_is_selected, DEFAULT_STATE);
80+
int viewTranslationX = ta.getInteger(R.styleable.scroll_scroll_view_translation_x, DEFAULT_VIEW_TRANSLATION_X);
7581
ta.recycle();
7682

7783
mLineColor = lineColor;
@@ -99,6 +105,14 @@ public ENScrollView(Context context, AttributeSet attrs) {
99105
mPathMeasure = new PathMeasure();
100106

101107
mDuration = DEFAULT_DURATION;
108+
mViewTranslationX = viewTranslationX;
109+
if (isSelected) {
110+
mFraction = 1;
111+
mCurrentState = STATE_SELECT;
112+
} else {
113+
mFraction = 0;
114+
mCurrentState = STATE_UNSELECT;
115+
}
102116
}
103117

104118
@Override
@@ -120,16 +134,16 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
120134
protected void onDraw(Canvas canvas) {
121135
super.onDraw(canvas);
122136
canvas.save();
123-
canvas.translate(mFraction * mCircleRadius / 2, 0);
124-
canvas.drawRoundRect(mRectF, mCircleRadius, mCircleRadius, mBgPaint);
137+
canvas.translate(mFraction * mViewTranslationX, 0);
138+
canvas.drawRoundRect(mRectF, mCircleRadius, mCircleRadius, mBgPaint); //嗷~ 在这画背景线
125139
mDstPath.reset();
126140
mPathMeasure.getSegment(0 ,mPathLength / 2 * mFraction, mDstPath, true);
127-
canvas.drawPath(mDstPath, mPaint);
141+
canvas.drawPath(mDstPath, mPaint); //嗷~ 在这画上半圈
128142
mDstPath.reset();
129143
mPathMeasure.getSegment(mPathLength - mPathLength / 2 * mFraction ,mPathLength, mDstPath, true);
130-
canvas.drawPath(mDstPath, mPaint);
144+
canvas.drawPath(mDstPath, mPaint); //嗷~ 在这画下半圈
131145
mColorPaint.setColor(mCurrentColor);
132-
if (mFraction <= 0.8 && mFraction > 0.2) {
146+
if (mFraction <= 0.8 && mFraction > 0.2) { //嗷~ 在这画球
133147
canvas.drawCircle(mCenterX - mCircleRadius + 2 * mCircleRadius * mFraction , mCenterY , mCircleRadius / 6 / 0.6f * (mFraction - 0.2f) , mColorPaint);
134148
} else if (mFraction > 0.8) {
135149
canvas.drawCircle(mCenterX - mCircleRadius + 2 * mCircleRadius * mFraction , mCenterY , mCircleRadius / 6 , mColorPaint);

library/src/main/java/moe/codeest/enviews/ENSearchView.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
119119
@Override
120120
protected void onDraw(Canvas canvas) {
121121
super.onDraw(canvas);
122-
if (mFraction <= 0.2) {
122+
if (mFraction <= 0.2) { //嗷~ 放大镜手柄收缩
123123
canvas.drawCircle(mCenterX , mCenterY ,mCircleRadius - mCircleRadius * mFraction, mPaint);
124124
canvas.drawLine(mCenterX + mCircleRadius / (float) Math.sqrt(2) + 1.2f * mCircleRadius / (float) Math.sqrt(2) / 0.2f * mFraction,
125125
mCenterY + mCircleRadius / (float) Math.sqrt(2) + 1.2f * mCircleRadius / (float) Math.sqrt(2) / 0.2f * mFraction,
@@ -132,13 +132,13 @@ protected void onDraw(Canvas canvas) {
132132
if (isDotShowing) {
133133
isDotShowing = false;
134134
} else {
135-
canvas.drawCircle(mCurrentPos[0], mCurrentPos[1], mDotSize, mPaint);
135+
canvas.drawCircle(mCurrentPos[0], mCurrentPos[1], mDotSize, mPaint); //嗷~ 轨迹中的小球
136136
isDotShowing = true;
137137
}
138138
} else {
139139
canvas.drawCircle(mCurrentPos[0], mCurrentPos[1], mDotSize, mPaint);
140140
}
141-
if (mFraction <= 0.3) {
141+
if (mFraction <= 0.3) { //嗷~ 内圈粘性部分
142142
canvas.drawCircle(mCenterX , mCenterY ,0.8f * mCircleRadius + mCircleRadius * 2 * (mFraction - 0.2f), mPaint);
143143
} else {
144144
canvas.drawCircle(mCenterX , mCenterY ,mCircleRadius , mPaint);
@@ -150,7 +150,7 @@ protected void onDraw(Canvas canvas) {
150150
canvas.drawArc(mRectF, 45 - 55 / 0.05f * (0.4f - mFraction), 110 / 0.05f * (0.4f - mFraction), false, mArcPaint);
151151
}
152152

153-
if (mFraction <= 0.75 && mFraction > 0.7) {
153+
if (mFraction <= 0.75 && mFraction > 0.7) { //嗷~ 外圈粘性部分
154154
mArcPath.reset();
155155
mArcPath.moveTo(mCenterX + mCircleRadius, mCenterY);
156156
mArcPath.cubicTo(mCenterX + mCircleRadius + 8 / 0.05f * (mFraction - 0.7f), mCenterY + mCircleRadius / 2 + 8 / 0.05f * (mFraction - 0.7f),
@@ -165,7 +165,7 @@ protected void onDraw(Canvas canvas) {
165165
mCenterX, mCenterY + mCircleRadius);
166166
canvas.drawPath(mArcPath, mPaint);
167167
}
168-
} else {
168+
} else { //嗷~ 放大镜手柄伸长
169169
canvas.drawCircle(mCenterX , mCenterY ,mCircleRadius , mPaint);
170170
canvas.drawLine(mCenterX + 2.2f *mCircleRadius / (float) Math.sqrt(2) - 1.2f * mCircleRadius / (float) Math.sqrt(2) / 0.2f * (mFraction - 0.8f),
171171
mCenterY + 2.2f * mCircleRadius / (float) Math.sqrt(2) - 1.2f * mCircleRadius / (float) Math.sqrt(2) / 0.2f * (mFraction - 0.8f),

library/src/main/java/moe/codeest/enviews/ENVolumeView.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class ENVolumeView extends View{
3131

3232
private static final int DEFAULT_LINE_COLOR = Color.WHITE;
3333

34-
private static final int DEFAULT_BG_LINE_COLOR = 0xff4f5559;
34+
private static final int DEFAULT_BG_LINE_COLOR = 0xff64696d;
3535

3636
private static final int DEFAULT_LINE_WIDTH = 10;
3737

@@ -129,22 +129,22 @@ protected void onDraw(Canvas canvas) {
129129
super.onDraw(canvas);
130130
if (mCurrentState != STATE_VIBRATE) {
131131
if (mFraction <= 0.5) {
132-
mDstPath.reset();
132+
mDstPath.reset(); //嗷~ 在这画喇叭
133133
mPathMeasure.getSegment(0, mPathLength * 0.38f - mPathLength * 0.13f * mFraction, mDstPath, true);
134134
canvas.drawPath(mDstPath, mBgPaint);
135135
mDstPath.reset();
136136
mPathMeasure.getSegment(mPathLength * 0.62f + mPathLength * 0.13f * mFraction, mPathLength, mDstPath, true);
137137
canvas.drawPath(mDstPath, mBgPaint);
138138

139-
canvas.save();
139+
canvas.save(); //嗷~ 在这画X
140140
canvas.translate(- mFraction * mBaseLength * 2, 0);
141141
canvas.drawLine(mCenterX - mBaseLength * (0.5f - mFraction) , mCenterY - mBaseLength * (0.5f - mFraction)
142142
,mCenterX + mBaseLength * (0.5f - mFraction), mCenterY + mBaseLength * (0.5f - mFraction), mBgPaint);
143143
canvas.drawLine(mCenterX - mBaseLength * (0.5f - mFraction), mCenterY + mBaseLength * (0.5f - mFraction)
144144
,mCenterX + mBaseLength * (0.5f - mFraction), mCenterY - mBaseLength * (0.5f - mFraction), mBgPaint);
145145
canvas.restore();
146146
} else {
147-
mDstPath.reset();
147+
mDstPath.reset(); //嗷~ 在这画喇叭
148148
mPathMeasure.getSegment(0, mPathLength * 0.25f + mPathLength * 0.13f * (mFraction - 0.5f), mDstPath, true);
149149
canvas.drawPath(mDstPath, mBgPaint);
150150
mDstPath.reset();
@@ -157,7 +157,7 @@ protected void onDraw(Canvas canvas) {
157157
mPathMeasure.getSegment(mPathLength - mPathLength * 0.38f / 0.5f * (mFraction - 0.5f), mPathLength, mDstPath, true);
158158
canvas.drawPath(mDstPath, mPaint);
159159

160-
canvas.save();
160+
canvas.save(); //嗷~ 在这画小声波
161161
canvas.translate( - (1 - mFraction) * mBaseLength * 2, 0);
162162
canvas.drawArc(mCenterX - 0.5f * mBaseLength - mBaseLength / 0.5f * (mFraction - 0.5f),
163163
mCenterY - mBaseLength / 0.5f * (mFraction - 0.5f),
@@ -172,7 +172,7 @@ protected void onDraw(Canvas canvas) {
172172
mCenterY + mBaseLength / 0.5f * (mFraction - 0.5f), -55 / 50 * sVolume, 110 / 50 * sVolume ,false, mPaint);
173173
canvas.restore();
174174

175-
canvas.save();
175+
canvas.save(); //嗷~ 在这画大声波
176176
canvas.translate( - (1 - mFraction) * mBaseLength * 3, 0);
177177
canvas.drawArc(mCenterX - 1.6f * mBaseLength / 0.5f * (mFraction - 0.5f),
178178
mCenterY - 1.6f * mBaseLength / 0.5f * (mFraction - 0.5f),
@@ -188,14 +188,14 @@ protected void onDraw(Canvas canvas) {
188188
canvas.restore();
189189
}
190190
} else {
191-
mDstPath.reset();
191+
mDstPath.reset(); //嗷~ 在这画喇叭
192192
mPathMeasure.getSegment(0, mPathLength * 0.38f, mDstPath, true);
193193
canvas.drawPath(mDstPath, mPaint);
194194
mDstPath.reset();
195195
mPathMeasure.getSegment(mPathLength - mPathLength * 0.38f, mPathLength, mDstPath, true);
196196
canvas.drawPath(mDstPath, mPaint);
197197

198-
canvas.save();
198+
canvas.save(); //嗷~ 在这画小声波
199199
canvas.translate( - (1 - mFraction) * mBaseLength / 3, 0);
200200
canvas.drawArc(mCenterX - 1.5f * mBaseLength,
201201
mCenterY - mBaseLength,
@@ -210,7 +210,7 @@ protected void onDraw(Canvas canvas) {
210210
mCenterY + mBaseLength, -55 / 50 * sVolume, 110 / 50 * sVolume ,false, mPaint);
211211
canvas.restore();
212212

213-
canvas.save();
213+
canvas.save(); //嗷~ 在这画大声波
214214
canvas.translate( - (1 - mFraction) * mBaseLength / 3, 0);
215215
canvas.drawArc(mCenterX - 1.6f * mBaseLength,
216216
mCenterY - 1.6f * mBaseLength,

library/src/main/res/values/attrs.xml

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
<attr name="scroll_line_width" format="integer" />
2828
<attr name="scroll_bg_line_color" format="color" />
2929
<attr name="scroll_bg_line_width" format="integer" />
30+
<attr name="scroll_is_selected" format="boolean" />
31+
<attr name="scroll_view_translation_x" format="integer" />
3032
</declare-styleable>
3133

3234
<declare-styleable name="search">

0 commit comments

Comments
 (0)