| 217 | } |
| 218 | |
| 219 | private void drawSearch(Canvas canvas) { |
| 220 | |
| 221 | mPaint.setColor(Color.WHITE); |
| 222 | |
| 223 | |
| 224 | canvas.translate(mViewWidth / 2, mViewHeight / 2); |
| 225 | |
| 226 | canvas.drawColor(Color.parseColor("#0082D7")); |
| 227 | |
| 228 | switch (mCurrentState) { |
| 229 | case NONE: |
| 230 | canvas.drawPath(path_srarch, mPaint); |
| 231 | break; |
| 232 | case STARTING: |
| 233 | mMeasure.setPath(path_srarch, false); |
| 234 | Path dst = new Path(); |
| 235 | mMeasure.getSegment(mMeasure.getLength() * mAnimatorValue, mMeasure.getLength(), dst, true); |
| 236 | canvas.drawPath(dst, mPaint); |
| 237 | break; |
| 238 | case SEARCHING: |
| 239 | mMeasure.setPath(path_circle, false); |
| 240 | Path dst2 = new Path(); |
| 241 | float stop = mMeasure.getLength() * mAnimatorValue; |
| 242 | float start = (float) (stop - ((0.5 - Math.abs(mAnimatorValue - 0.5)) * 200f)); |
| 243 | mMeasure.getSegment(start, stop, dst2, true); |
| 244 | canvas.drawPath(dst2, mPaint); |
| 245 | break; |
| 246 | case ENDING: |
| 247 | mMeasure.setPath(path_srarch, false); |
| 248 | Path dst3 = new Path(); |
| 249 | mMeasure.getSegment(mMeasure.getLength() * mAnimatorValue, mMeasure.getLength(), dst3, true); |
| 250 | canvas.drawPath(dst3, mPaint); |
| 251 | break; |
| 252 | } |
| 253 | } |
| 254 | } |