android 加载动画下载,Android 下载进度条, 自定义加载进度条,loading动画

1、自定义loadingline动画

/**

* 作者:created by meixi

* 邮箱:13164716840@163.com

* 日期:2018/9/6 10

*/

public class LoadingLine extends View {

private Paint paint;

private Paint backPaint;

private Paint textPaint;

private boolean init = false;

private ValueAnimator valueAnimator;

private float param = 0;

private int length = 0;

public LoadingLine(Context context) {

super(context);

init();

}

public LoadingLine(Context context, AttributeSet attrs) {

super(context, attrs);

init();

}

private void init() {

paint = new Paint();

paint.setColor(Color.BLUE);

paint.setStrokeWidth(25);

backPaint = new Paint();

backPaint.setColor(Color.RED);

backPaint.setStrokeWidth(25);

textPaint = new Paint();

textPaint.setColor(Color.WHITE);

textPaint.setTextSize(10);

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

if (!init) {

// start();

init = true;

}

int width = getWidth();

int height = getHeight();

canvas.drawLine(0, height / 2, width, height / 2, backPaint);

canvas.drawLine(0, height / 2, length * width / 100, height / 2, paint);

if (length<100){

canvas.drawText(length + "", length * width / 100 - 22, height / 2 + 6, textPaint);

}else {

canvas.drawText(length + "", length * width / 100 - 42, height / 2 + 6, textPaint);

}

// if (valueAnimator.isRunning()) {

// param = (float) valueAnimator.getAnimatedValue();

// setLength((int) param);

// }

}

/**

* 也可在外部手动控制进度条,自行关闭valueAnimator

*

* @param param

*/

public void setLength(int param) {

this.length = param;

invalidate();

}

private void start() {

if (valueAnimator == null) {

valueAnimator = ValueAnimator.ofFloat(0, 100);

valueAnimator.setInterpolator(new LinearInterpolator());

valueAnimator.setDuration(6000);

valueAnimator.start();

} else {

valueAnimator.start();

}

postDelayed(new Runnable() {

@Override

public void run() {

// start();

invalidate();

}

}, valueAnimator.getDuration());

invalidate();

}

}

2、activity调用

布局文件

初始化

private boolean running;

private LoadingLine loadingLine;

int i = 0;

static final int REFRESH_COMPLETE = 0X1112;

private Handler mHandler = new Handler() {

public void handleMessage(android.os.Message msg) {

switch (msg.what) {

case REFRESH_COMPLETE:

if (i==100){

running=false;

}

Log.i("lgq","...===="+i);

loadingLine.setLength(i++);//主要加载进度方法

//todo...

break;

}

}

};

线程加载进度

loadingLine =(LoadingLine)findViewById(R.id.myloadline);

new Thread() {

@Override

public void run() {

super.run();

running = true;

while (running) {

mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 0);

try {

sleep(100);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}.start();

添加圆弧框

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值