Android 自定义View动画效果进阶
程序员文章站
2024-03-21 12:48:52
...
Android 自定义View动画效果进阶
之前写过一篇有关于自定义ViewGroup的博客,道理很简单,理解之后自己想写什么样的就写什么样的空间。
今天写我的第二个博客。。。
给大家讲一下自定义View,也是公司的一个需求,实现类似Desigin动画的各种酷刑交互效果,写好了是真的酷炫。
先再讲一下自定义View
主要就是paint 和 Canvas 这些就不细讲了,各种具体方法网上自己细查吧。使用起来不算难
就是在onDraw里面画布局。
今天讲的酷炫动画主要是用了ValueAnimator 之前没怎么接触过这个,一般都是ObjectAnimator实现动画,自定义View加ValueAnimator加共享元素是真的酷炫。
不知道共享元素的就问度娘吧,好多讲解,但是共享动画不能视频android 5.0以下的机型,直接给你们个三方库
compile 'com.kogitune:pre-lollipop-activity-transition:1.0.0'
用法如下
这是启动页面
这是启动页面
ActivityTransitionLauncher.with(MainActivity.this).from(clickView).launch(new Intent(MainActivity.this, PrograssActivity.class));
这是接收页面
ActivityTransition.with(getIntent()).to(transView).start(savedInstanceState);
这就不细讲了,网上有共享动画的实现方法和4.x的实现方法
下面我们来讲酷炫的自定义 View先上图
下面我们来讲酷炫的自定义 View先上图
怎么样酷炫吧这是一套自定义View
其实没什么难度,就讲一下一开始的啊
其实就是先画个圆环
RectF oval = new RectF(x, y, x1, y1); paint.setColor(Color.WHITE);//设置圆环的颜色 paint.setStyle(Paint.Style.STROKE);//设置空心 paint.setAntiAlias(true);//消除锯齿 paint.setStrokeWidth(Utils.dip2px(getContext(), 2)); paint.setAlpha(255 - alpha); canvas.drawArc(oval, -90, circle, false, paint);//根据进度画圆弧
ValueAnimator animator = ValueAnimator.ofFloat(0, 360); animator.setDuration((long) 1000).setRepeatCount(0); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { Float angle = (Float) animation.getAnimatedValue(); circle = angle; invalidate(); } }); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { AlphaMax(); } }); // 自定义开始减速到0后加速到初始值的Interpolator animator.setInterpolator(new LinearInterpolator()); animator.start();
circle就是进度,重点是ValueAnimator 后面跟的是开始值0,360的意思就是一圈
然后你就可以通过监听直接获取出值的变化
下面是监听动画结束来开始下一个动画
LinearInterpolator是插值器,可以自定义,网上有几个系统自带的基本插值器,自己写就够用了
我这些动画就是一个接一个接出来的只要算好画出来的图形的值就行,各种酷炫动画都可以实现。
不喜勿怪啊,要是有问题评论啊
推荐阅读
-
Android 自定义View动画效果进阶
-
iOS学习之自定义弹出UIPickerView或UIDatePicker(动画效果)
-
Android进阶之自定义View(2)高仿钉钉运动步数实现可动的进度圆环(上)
-
Android自定义view-高仿小米视频加载动画效果
-
阿里面试官;Android自定义View你都知道吗?
-
Android自定义view(一) 博客分类: Android UI 界面 Android自定义view步骤
-
Android实现自定义的弹幕效果
-
Android自定义View基础开发之图片加载进度条
-
Android动画效果之自定义ViewGroup添加布局动画(五)
-
Android自定义View实现折线图效果