package com.mjj.materialprogressdrawable;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.DecelerateInterpolator;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private int[] colors = {
0xFFFF0000,0xFFFF7F00,0xFFFFFF00,0xFF00FF00
,0xFF00FFFF,0xFF0000FF,0xFF8B00FF};
private final int CIRCLE_BG_LIGHT = 0xFFFAFAFA;
private ImageView imageView;
private MaterialProgressDrawable mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.image);
mProgress = new MaterialProgressDrawable(this,imageView);
mProgress.setBackgroundColor(CIRCLE_BG_LIGHT);
//圈圈颜色,可以是多种颜色
mProgress.setColorSchemeColors(colors);
//设置圈圈的各种大小
mProgress.updateSizes(MaterialProgressDrawable.LARGE);
imageView.setImageDrawable(mProgress);
}
private ValueAnimator valueAnimator;
boolean start = false;
boolean visable = false;
public void visable(View v)
{
if(valueAnimator == null)
{
valueAnimator = valueAnimator.ofFloat(0f,1f);
valueAnimator.setDuration(600);
valueAnimator.setInterpolator(new DecelerateInterpolator());
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float n = (float) animation.getAnimatedValue();
//圈圈的旋转角度
mProgress.setProgressRotation(n * 0.5f);
//圈圈周长,0f-1F
mProgress.setStartEndTrim(0f, n * 0.8f);
//箭头大小,0f-1F
mProgress.setArrowScale(n);
//透明度,0-255
mProgress.setAlpha((int) (255 * n));
}
});
valueAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
visable = true;
}
});
}
if(!valueAnimator.isRunning())
{
if(!visable)
{
//是否显示箭头
mProgress.showArrow(true);
valueAnimator.start();
}
else
{
Toast.makeText(this,"看不见吗?",Toast.LENGTH_SHORT).show();
}
}
}
public void start(View v)
{
if(visable)
{
if (!start)
{
mProgress.start();
start = true;
}
else
{
Toast.makeText(this,"已经在转了",Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(this,"还没有显示",Toast.LENGTH_SHORT).show();
}
}
public void stop(View v)
{
if (start)
{
mProgress.stop();
start = false;
visable = false;
}
else
{
Toast.makeText(this,"又没有转",Toast.LENGTH_SHORT).show();
}
}
}