自定义View系列(1)--加载动画LoadingView
来源:互联网 发布:python自动化测试虫师 编辑:程序博客网 时间:2024/05/17 04:58
自定义View系列(1)–加载动画LoadingView
也看了很长时间的自定义View了,觉得可以做一些练手的自定义View,才有了写这些博客的想法,有不足之处希望大家及时谅解。
本文的自定义View主要用到了Path,PathMeasure这两种组件,主要讲一下PathMeasure的一些方法,
构造方法:
公共方法:这里之讲解用到的几个,其他的可以自己去看看。
getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)参数含义:
- startD:开始截取位置距离 Path 起点的长度(起点)
- stopD:结束截取位置距离 Path 起点的长度(终点)
- dst:截取的 Path 将会添加到 dst 中
- startWithMoveTo:起始点是否使用 moveTo,本例中直接true就可以,false效果大家可以试试。
直接上主要代码了:
private void initView() {
mPaint=new Paint();
mPaint.setStrokeWidth(10);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setColor(Color.WHITE);
mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.STROKE);
initPath(); postDelayed(new Runnable() { @Override public void run() { setAnimation(); } },200);}private void initPath() { load_path=new Path(); RectF rectF=new RectF(-100,-100,100,100); load_path.addArc(rectF,270,359.9f); measure=new PathMeasure();}public void setAnimation(){ ValueAnimator valueAnimator=ValueAnimator.ofFloat(0.0f,1.0f); valueAnimator.setDuration(2000); valueAnimator.setRepeatCount(ValueAnimator.INFINITE); valueAnimator.setRepeatMode(ValueAnimator.RESTART); valueAnimator.setInterpolator(new LinearInterpolator()); valueAnimator.start(); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { currentValues= (float) animation.getAnimatedValue(); invalidate(); } });}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mCenterX=w/2; mCenterY=h/2;}@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.translate(mCenterX,mCenterY); canvas.drawColor(Color.parseColor("#32bf82")); measure.setPath(load_path,false); Path dst = new Path(); float stop = measure.getLength() * currentValues; float start = (float) (stop - ((0.5 - Math.abs(currentValues - 0.5)) * 200f)); measure.getSegment(start,stop,dst,true); canvas.drawPath(dst,mPaint);}</php>留了好久的自定义View,想看效果的也可以直接把以上代码复制到自己的Android Studio上查看效果,因为本人不会录制GIf视频,所以如果需要代码的可以直接私信我邮箱2860605483@qq.com谢谢大家了,哈哈!
阅读全文
1 0
- 自定义View系列(1)--加载动画LoadingView
- Android 自定义View(四)IOS LoadingView
- 自定义View(加载动画)
- 自定view实践(一) 自定义loadingView
- Android自定义View--加载动画
- 从零开始学Android自定义View之动画系列——属性动画(1)
- Android自定义View二(加载进度动画)
- Android从零开搞系列:动画系列(1)View动画
- android自定义View基础系列一(模仿365日历PC版加载动画)
- android学习-----自定义View 加载动画
- 自定义View——仿爱奇艺加载动画...
- 自定义View实现loading动画加载
- android自定义view之加载动画ColorBall
- android自定义view之加载动画ColorBall
- 从属性动画看自定义View(1)
- 从零开始学Android自定义View之动画系列——属性动画(2)
- 从零开始学Android自定义View之动画系列——属性动画(3)
- iOS自定义LoadingView
- Idea新建的maven项目不能创建package和java的class文件的问题
- angular-mocks
- huawei性格
- 51.之字形顺序打印二叉树
- PHP-字符串转整型-不使用内置函数
- 自定义View系列(1)--加载动画LoadingView
- python 格式化输出
- spring boot 单个或多个文件上传
- 使用$http发送请求的时候显示loading
- Hive表操作及管理
- PyTorch(三)——使用训练好的模型测试自己图片
- android webview的使用
- win7系统注册表开机启动项如何打开?
- commit日志历史不一致的Git仓库合并