文章标题 圆形进度条(内部显示百分数)
2017-11-01 21:23
411 查看
CustomProgrssView控件
package shidongliang.bwei.com.huatudemo.view;
package shidongliang.bwei.com.huatudemo.view;
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; import android.util.AttributeSet; import android.view.View; /** * 此类的作用: * * @author: forever * @date: 2017/11/1 15:05 */ public class CustomProgrssView extends View { //定义个画笔 private int progress=0; private boolean runing=true; private Paint paint; public CustomProgrssView(Context context) { super(context); } public CustomProgrssView(Context context, AttributeSet attrs) { super(context, attrs); //创建画笔 paint = new Paint(); //抗锯齿 paint.setAntiAlias(true); //设置画笔颜色 paint.setColor(Color.RED); //设置画笔 填充是空心 paint.setStyle(Paint.Style.STROKE); new Thread(new Runnable() { @Override public void run() { while (runing){ if(progress>=360){ runing=false; return; } System.out.println("progrss="+progress); progress+=10; //子线程刷新 系统调用onDraw方法 postInvalidate(); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } public CustomProgrssView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //获得view的宽和高 int x=getWidth()/2; int y=getHeight()/2; int radius=200; //设置画笔的粗细 paint.setStrokeWidth(5); //定义区域 RectF rectF = new RectF(x - radius, y - radius, x + radius, y + radius); canvas.drawArc(rectF,-90,progress,false,paint); int text=(int) ((float)progress/360*100); float textWidth=paint.measureText(text+"%"); Rect rextText=new Rect(); paint.getTextBounds(text+"%",0,(text+"%").length(),rextText); paint.setTextSize(30); paint.setStrokeWidth(1); //画文字 canvas.drawText(text+"%",x-textWidth/2,y+rextText.height()/2,paint); } } 布局------------------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="shidongliang.bwei.com.huatudemo.MainActivity"> <shidongliang.bwei.com.huatudemo.view.CustomProgrssView android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
相关文章推荐
- 文章标题android之listview异步加载图片时显示加载进度ProgressBar
- dede实现拼音显示文章标题页文件名
- Django 后台 无法显示文章标题
- CircleNumberProgressBar:显示数字的圆形进度条
- 《Android-圆形图片处理(上传)进度显示》
- 文章标题显示图标的代码
- 如何以仅标题的形式显示blogger所有文章列表
- onethink使用article:list显示后台文章标题和article:page 实现分页
- 截断显示文章标题时,出现乱码或者“?”问号的问题
- 自定义圆形进度条实现动态显示指定进度
- 让wordpress博客首页、分类页 显示文章标题列表或摘要
- 自定义View实现Android圆形进度条,支持自定义显示的样式
- WordPress文章标题显示汉字方法
- dedecms列表中显示文章完整标题的解决办法
- asp.net 关于列表问题。点击文章标题,显示文章内容。
- 用dedecms实现拼音显示文章标题页文件名的方法
- 在Activity标题中加入圆形进度
- Dede修改文章默认标题长度,让标题全显示
- Aandroid 标题显示进度条遇到的问题总结
- 鼠标停留在文章标题上显示全部标题方法