D9-Android自定义控件之动画篇1

本篇是关于ObjectAnimator的演示 ObjectAnimator是针对有setXxxxxx方法的属性,进行的"Xxxxxx"属性变化动画 绘制部分就不废话了,前面已经说很多了,直接进入主题


一、下移示例:

下移动画.gif

/**
 * 下移动画
 */
private ObjectAnimator mMoveDown;
float translationY = getTranslationY();//当前Y偏移量
mMoveDown = ObjectAnimator//创建实例
        //(View,属性名,初始化值,结束值)
        .ofFloat(this, "translationY", translationY, translationY + 300)
        .setDuration(1000);//设置时常
mMoveDown.start();//开启动画

加上背景看一下,可以看出是整个View进行了变化。

加背景.gif

常用属性一览:

属性名

演示

解释

alpha

透明度1~0

translationX

X方向移动

translationY

Y方向移动

rotation

旋转(默认View中心点)

rotationX

X轴旋转(默认View中心横轴)

translationY

Y轴旋转(默认View中心纵轴)

scaleX

X缩放 倍数

scaleY

Y缩放 倍数


二、其他

1.旋转缩放中心点设置:
setPivotX(200);
setPivotY(200);

旋转中心点.gif

2.多参数

0-->360 360-->0 0-->90

.ofFloat(this, "rotation", 0, 360,360,0,0,90)

多参数.gif

3.延迟、重复、重复模式

重复模式:ValueAnimator.RESTART(1)和ValueAnimator.REVERSE(2) 重复次数:ValueAnimator.INFINITE为无限循环(-1)

translationX.setStartDelay(1000);
translationX.setRepeatCount(2);
translationX.setRepeatMode(ValueAnimator.RESTART);
RESTART重复效果

延迟,RESTART重复.gif

REVERSE重复效果

REVERSE重复.gif


三、自定义ObjectAnimator属性

内置的只是一些常用的,我们也可以自定义自己的属性

1.自定义圆的大小动画

必须用一个setXxx的方法,属性名则为xxx,调用重绘方法

public void setCircleR(float circleR) {
    mCircleR = circleR;
    invalidate();//记得重绘
}
private ObjectAnimator circleR() {
    return ObjectAnimator//创建实例
            //(View,属性名,初始化值,结束值)
            .ofFloat(this, "circleR", 100, 50,100,20,100)
            .setDuration(3000);//设置时常
}

自定义半径.gif

2.自定义颜色动画
public void setColor(int color) {
    mColor = color;
    invalidate();
}
private ObjectAnimator color() {
    ObjectAnimator color = ObjectAnimator//创建实例
            //(View,属性名,初始化值,结束值)
            .ofInt(this, "color", 0xff0000ff,0xffF2BA38,0xffDD70BC)
            .setDuration(3000);
    color.setEvaluator(new ArgbEvaluator());//颜色的估值器
    return color;
}

自定义颜色.gif

下一篇将会带来:set动画集来控制多个动画,以及动画的监听。


后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明 [2]欢迎广大编程爱好者共同交流 [3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 [4]你的喜欢与支持将是我最大的动力

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏糊一笑

移动端效果之Swiper

写在前面 最近在做移动端方面运用到了饿了么的vue前端组件库,因为不想单纯用组件而使用它,故想深入了解一下实现原理。后续将会继续研究一下其他的组件实现原理,有兴...

3338
来自专栏吴老师移动开发

【iOS开发】iOS 动画详解

在移动开发中,为了提高用户体验,会用到一些动画来提高应用的视觉效果。让人有眼前一亮的感觉。同时有动画的过渡过程,会让应用看起来不是那么的生硬,更吸引用户。

2856
来自专栏前端知识分享

第213天:12个HTML和CSS必须知道的重点难点问题

这12个问题,基本上就是HTML和CSS基础中的重点个难点了,也是必须要弄清楚的基本问题,其中定位的绝对定位和相对定位到底相对什么定位?这个还是容易被忽视的,浮...

2112
来自专栏超然的博客

那些年,我们被耍过的bug——haslayout

IE,这个令所有网站设计人员讨厌,但又不得不为它工作的浏览器。不论是6、7还是8,它们都有一个共同的渲染标准haslayout,所以haslayout 是一个非...

1051
来自专栏HTML5学堂

JavaScript 获取鼠标及元素在页面上的位置

HTML5学堂:JavaScript获取鼠标的位置,大家会想到clientX/Y等属性,灵活的获取鼠标的位置信息,能够便于我们实现各种复杂的页面交互效果,到底还...

3886
来自专栏用户2442861的专栏

CSS基础(五):定位

相对定位指的是设置为相对定位的元素框会偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍保留。

622
来自专栏从零开始学自动化测试

appium+python自动化58-xpath定位

3.class属性唯一的话,可以通过class属性定位到,定位class属性有两种方法

2725
来自专栏Android-薛之涛

Android-Animation 总结(二(Valueanimator))

          之前讲了帧动画和补间动画,今天我们来说一说重头戏---Android Animation之属性动画(property animation)。

731
来自专栏偏前端工程师的驿站

CSS魔法堂:Transition就这么好玩

1355
来自专栏计算机编程

Kotlin 自定义 标签viewgroup

一般在java语言中,constructor直接在继承viewgroup后会报错,然后根据自定义快捷键,默认为alt+enter【博主是用的eclipse 的k...

1453

扫码关注云+社区

领取腾讯云代金券