Android(安卓)自定义View实现动画形式加载环形图
16lz
2021-01-26
先看效果图(图片是gif,比较卡顿):
通过调用postInvalidateDelayed()延时绘制的方法,可以实现以上图片中的延时效果,下面来看具体代码:
1、自定义View类:
public class MyProgressView extends View { private Paint circlePaint; //圆环的画笔 private Paint bgPaint; //环背景的画笔 private RectF circleRectF; //圆环依据的矩阵 private int ringRadius=50; //环的半径 private int drawNums=60; //绘制的次数,用来实现动画效果 private int totalAngle=360; //总共的角度 private int drawedAngle=0; //已经绘制的角度 private float percentDraw=0; //需要绘制的百分比 public MyProgressView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(percentDraw==0)return; //画圆环的背景色 canvas.drawArc(circleRectF,0,360,false,bgPaint); if(drawedAngle
2、在Activity中使用该自定义View:
public class MainActivity extends AppCompatActivity { private MyProgressView myProgressView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView(){ myProgressView=findViewById(R.id.progress); myProgressView.setStyles(200,100,0.65f); //myProgressView.setStyles(200,100, Color.BLUE,Color.parseColor("#E1FFFF"),0.65f); }}
3、最后是布局文件:
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- Android(安卓)Canvas 说明
- Android(安卓)自定义View实例之进度圆环
- Android(安卓)RecyclerView —— 自定义分割线
- android百度地图:在地图上绘制点、线、多边形、圆形和文字
- Android的冷启动优化
- Android(安卓)ApiDemos示例解析(73):Graphics->Points
- android 里面的 Drawable 和 ConstantState
- Android绘图系列(五)——绘制文本
- android webview 加载本地html并且解决多图卡顿问题