ProgressBar . doRefreshProgress():
final int level = (int) (scale * MAX_LEVEL);
(progressDrawable != null ? progressDrawable : d).setLevel(level);
A - , , , Drawable.
, , , .
true, Drawable (, invalidate), false.
, a GradientDrawable ( useLevel="true", , ) , , . , :
final float level = st.mUseLevel ? (float) getLevel() / 10000.0f : 1.0f;
x0 = r.left; y0 = r.top;
x1 = level * r.right; y1 = y0;
, , , 360- :
float sweep = st.mUseLevelForShape ? (360.0f * getLevel() / 10000.0f) : 360f;
, setProgress() , .
RotateDrawable, progress_particle ( 90 ) :
mState.mCurrentDegrees = mState.mFromDegrees +
(mState.mToDegrees - mState.mFromDegrees) * ((float) level / MAX_LEVEL);
, , " , 0 " , . Ring GradientDrawables . :
ringPath.moveTo(x + radius, y);
ringPath.lineTo(x + radius + thickness, y);