Android动画

东西很简单面试的时候你不过一遍还真的答不出来哈

Android动画分类:
帧动画:一级图片的集合
对于帧动画要注意一点是 在res下创建 anima 是无法创建 animation-list的 只能在drawable创建
参考:https://blog.csdn.net/qq_34471736/article/details/61206629

image.png

补间动画(View动画)有translate(平移) 、scale(缩放)、alpha(通明度)、rotate(旋转)
使用android studio 测的时候 alpha 必须放在anim里面 其它几个要放在drawable根目录下 不然会报错的

image.png
Android3.0之后出现了 属性动画

属性动画相比较View动画是实实在在的改变View的属性 view动画(也称为补间动画)如果是view动画的话 在动画结束后 如果没有停留在view之前的位置的话我点击view是不会响应事件的。而属性动画则可以。

属性动画主要的几个类:
image.png

ViewPropertyAnimator 使用比较简单 如要是View上一些属性 如 translateX rotate 等
ValueAnimator 一般做数据 通过插值器 设置数据的变化模式 通过调用 addUpdateListener 加调使用
比如下面代码 一个QQ计步器的部分代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final QQStepView qqStepView = (QQStepView) findViewById(R.id.step_view);
        qqStepView.setStepMax(4000);
        // 属性动画 后面讲的内容
//        ValueAnimator valueAnimator = ObjectAnimator.ofFloat(0, 3000);  //注意最大步数 这里设置为 3000/4000 也就是0.75 我们再看圆弧
        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 3000);  //注意最大步数 这里设置为 3000/4000 也就是0.75 我们再看圆弧
        valueAnimator.setDuration(1000);
        valueAnimator.setInterpolator(new DecelerateInterpolator());
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                float currentStep = (float) animation.getAnimatedValue();
                qqStepView.setCurrentStep((int)currentStep);
            }
        });
        valueAnimator.start();
    }
}

所有参考:https://blog.csdn.net/gyh790005156/article/details/88051138

QQ计步器的实现也很简单 只要思路有了参考:https://www.jianshu.com/p/4e0eb9bb09ab
插个关于Android canvas.drawArc 画圆弧的问题

canvas.drawArc(rectF,135,270,false,mOutPaint);

这里在没有画之前 如何有个基本的弧度的样式认知呢? 我这里画个图

image.png
image.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值