MaterialProgressDrawable.java 文件源码

java
阅读 36 收藏 0 点赞 0 评论 0

项目:FMTech 作者:
public final void draw(Canvas paramCanvas)
{
  Rect localRect = getBounds();
  int i = paramCanvas.save();
  paramCanvas.rotate(this.mRotation, localRect.exactCenterX(), localRect.exactCenterY());
  Ring localRing = this.mRing;
  RectF localRectF = localRing.mTempBounds;
  localRectF.set(localRect);
  localRectF.inset(localRing.mStrokeInset, localRing.mStrokeInset);
  float f1 = 360.0F * (localRing.mStartTrim + localRing.mRotation);
  float f2 = 360.0F * (localRing.mEndTrim + localRing.mRotation) - f1;
  localRing.mPaint.setColor(localRing.mCurrentColor);
  paramCanvas.drawArc(localRectF, f1, f2, false, localRing.mPaint);
  if (localRing.mShowArrow)
  {
    if (localRing.mArrow != null) {
      break label427;
    }
    localRing.mArrow = new Path();
    localRing.mArrow.setFillType(Path.FillType.EVEN_ODD);
  }
  for (;;)
  {
    float f3 = (int)localRing.mStrokeInset / 2 * localRing.mArrowScale;
    float f4 = (float)(localRing.mRingCenterRadius * Math.cos(0.0D) + localRect.exactCenterX());
    float f5 = (float)(localRing.mRingCenterRadius * Math.sin(0.0D) + localRect.exactCenterY());
    localRing.mArrow.moveTo(0.0F, 0.0F);
    localRing.mArrow.lineTo(localRing.mArrowWidth * localRing.mArrowScale, 0.0F);
    localRing.mArrow.lineTo(localRing.mArrowWidth * localRing.mArrowScale / 2.0F, localRing.mArrowHeight * localRing.mArrowScale);
    localRing.mArrow.offset(f4 - f3, f5);
    localRing.mArrow.close();
    localRing.mArrowPaint.setColor(localRing.mCurrentColor);
    paramCanvas.rotate(f1 + f2 - 5.0F, localRect.exactCenterX(), localRect.exactCenterY());
    paramCanvas.drawPath(localRing.mArrow, localRing.mArrowPaint);
    if (localRing.mAlpha < 255)
    {
      localRing.mCirclePaint.setColor(localRing.mBackgroundColor);
      localRing.mCirclePaint.setAlpha(255 - localRing.mAlpha);
      paramCanvas.drawCircle(localRect.exactCenterX(), localRect.exactCenterY(), localRect.width() / 2, localRing.mCirclePaint);
    }
    paramCanvas.restoreToCount(i);
    return;
    label427:
    localRing.mArrow.reset();
  }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号