自定义View的圆圈进度条
来源:互联网 发布:虚拟币交易所源码 编辑:程序博客网 时间:2024/05/05 10:43
Java类中
public class MyProgress extends View {
Paint paint;
int mProgress=0;
int mProgressNum=0;
public MyProgress(Context context) {
super(context);
init();
}
public MyProgress(Context context, AttributeSet attrs) { super(context, attrs); init();}public MyProgress(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init();}private void init() { paint=new Paint(); paint.setAntiAlias(true);}@Overrideprotected void onDraw(Canvas canvas) { paint.setStrokeWidth(0);//防止Arc变粗 paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); canvas.drawCircle(200,200,100,paint); canvas.drawCircle(200,200,80,paint); canvas.drawText(mProgressNum+"%",200,200,paint);//在圆中心显示的百分比 RectF rectF=new RectF(110,110,290,290); paint.setStrokeWidth(20); canvas.drawArc(rectF,0,mProgress,false,paint);}public void setProgress(int progress){ mProgress=progress; mProgressNum=progress*100/360; invalidate();}
}
MainActivity中
public class MainActivity extends AppCompatActivity {
MyProgress mp;
Button bt_start,bt_reset;
AsyncTask async;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp= (MyProgress) findViewById(R.id.mp);
bt_start= (Button) findViewById(R.id.bt_start);
bt_reset= (Button) findViewById(R.id.bt_reset);
bt_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { async=new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... strings) { for (int i=1;i<=360;i++){ if(isCancelled()){ break; } SystemClock.sleep(83); publishProgress(i); } return null; } @Override protected void onProgressUpdate(Integer... values) { if (isCancelled()){ return; } mp.setProgress(values[0]); } }.execute(); } }); //点击重置可以重新开始 bt_reset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(async!=null&&async.getStatus()==AsyncTask.Status.RUNNING){ async.cancel(true); } mp.setProgress(0); } });}
}
阅读全文
0 0
- 自定义View的圆圈进度条
- 自定义view圆圈进度条
- 自定义View圆圈进度条,颜色渐变
- 自定义View入门 —— 制作圆圈进度条
- 自定义圆圈进度条
- GossipView:圆圈布局的自定义view
- 自定义View圆圈跟随手指的demo
- 自定义一个圆圈View
- 自定义View圆圈箭头_
- 自定义View的绘画加载的画圆圈
- 自定义View之绕着圆圈的箭头~~
- 自定义View---自定义进度条
- android_studio的自定义View的圆形进度条
- 【Android自定义View】美观个性的进度条
- 自定义View实现带边框的进度条
- 自定义View之炫丽的进度条
- 自定义View(带进度的圆形进度条)
- 自定义view画带有进度条的圆
- vim 安装YouCompleteMe 插件
- 嵌入式视频处理考虑(二)
- Redis分布式锁的简单实现分析
- leetcode 28
- spring cloud踩坑日志(4)- eureka初始配置
- 自定义View的圆圈进度条
- 表提示(Transact-SQL)
- HIVE
- cocos js-binding相关资料
- 懒人读算法(八)-所有子集
- 更新vim8.0后,MacVim中YouCompleteMe出错
- 国家发展智慧城市的8个战略
- 11.How can Machine Learn Better?
- 指定TensorFlow使用哪一个GPU