圆形加载进度条
来源:互联网 发布:盖世豪侠 知乎 编辑:程序博客网 时间:2024/05/16 17:02
package com.example.admin.yuanhuan;import android.app.Notification;import android.content.Context;import android.content.Intent;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.os.Handler;import android.os.Message;import android.provider.MediaStore;import android.util.AttributeSet;import android.view.View;import android.widget.Toast;/** * Created by admin on 2017/12/2. */public class yuanhuan extends View implements Runnable{ int outwidth=10; int tx=0; int ty=0; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; private Paint paint; private RectF rectF; private Paint paint2; private int progress=0; int pro=100; private Paint paint3; public yuanhuan(Context context) { this(context,null); } public yuanhuan(Context context, AttributeSet attrs) { this(context, attrs,0); } public yuanhuan(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); huabi(); } private void huabi() { paint = new Paint(); paint.setColor(Color.BLACK); paint2 = new Paint(); paint2.setColor(Color.YELLOW); //是否填充 paint2.setStyle(Paint.Style.STROKE); //设置外圆的宽度 paint2.setStrokeWidth(outwidth); paint2.setAntiAlias(true); paint3 = new Paint(); paint3.setColor(Color.RED); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); tx=w/2; ty=h/2; //圆环的半径 int i = 100+outwidth/2; rectF = new RectF(); rectF.left=w/2-i; rectF.right=w/2+i; rectF.top=h/2-i; rectF.bottom=h/2+i; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //内圆 canvas.drawCircle(getWidth()/2,getHeight()/2,100,paint); //外援 canvas.drawArc(rectF,-90,(progress*360)/pro,false,paint2); dreawText(canvas); } private void dreawText(Canvas canvas) { String des = progress + "%"; //得到文字的宽度与高度 Paint.FontMetrics fm = new Paint.FontMetrics(); //得到文字的高度 int textHeight = (int)Math.ceil(fm.descent - fm.ascent); //的到文字宽度 int textWidth = (int)paint3.measureText(des,0,des.length()); canvas.drawText(des,getWidth()/2 - (textWidth / 2),getHeight() / 2 - (textHeight/2),paint3); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override public void run() { while (true){ if(progress<100){ progress++; try { Thread.sleep(100); if(progress==50){ handler.sendEmptyMessage(0); } } catch (InterruptedException e) { e.printStackTrace(); } postInvalidate(); }else{ progress=0; } } }}
阅读全文
0 0
- 加载圆形进度条
- 圆形加载进度条
- iOS 图片加载 圆形进度条
- iOS 图片加载 圆形进度条
- Android自定义圆形加载进度条
- iOS 图片加载 圆形进度条
- 自定义圆形带颜色的加载进度条
- android 自定义View加载圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 超详细:常用的设计模式汇总
- 程序员30岁之前应该怎样规划自己的职业生涯!
- hadoop-core-1.2.1.jar
- 安装Selenium和安装PhantomJS
- oracle中rowid和rownum
- 圆形加载进度条
- Python算法之快排学习总结
- matlab中连通域处理函数
- 计算机网络作业
- HDOJ 1019 水题
- Centos7 手把手教你 编译安装LNMP环境
- [poj2369]Permutations
- 面试题
- HAProxy