东西很简单面试的时候你不过一遍还真的答不出来哈
Android动画分类:
帧动画:一级图片的集合
对于帧动画要注意一点是 在res下创建 anima 是无法创建 animation-list的 只能在drawable创建
参考:https://blog.csdn.net/qq_34471736/article/details/61206629

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

Android3.0之后出现了 属性动画
属性动画相比较View动画是实实在在的改变View的属性 view动画(也称为补间动画)如果是view动画的话 在动画结束后 如果没有停留在view之前的位置的话我点击view是不会响应事件的。而属性动画则可以。
属性动画主要的几个类:
ObjectAnimator 有这些函数
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);
这里在没有画之前 如何有个基本的弧度的样式认知呢? 我这里画个图


网友评论