Android之属性动画简介

Android  代码片段  2022年5月5日 pm8:20发布2年前 (2022)更新 91es.com站长
45 0 0

前言

一直在用,但老是记不住,因此记录于此,方便自己查阅。

纸上得来终觉浅

正文

下面简单记录一下属性动画的旋转、平移、缩放和透明度渐变。

缩放

  1. 对X轴
private void TestScaleX(View view) {
    ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", 1.0f, 1.5f, 1);
    scaleX.setDuration(500);
    scaleX.start();
}
  1. 对Y轴
private void TestScaleY(View view) {
    ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", 1.0f, 1.5f, 1);
    scaleY.setDuration(500);
    scaleY.start();
}
  1. 对X和Y轴
private void TestScaleXY(View view) {
    AnimatorSet animatorSet = new AnimatorSet();
    /**
     *  组合动画
     *  view         : 缩放的View
     *  propertyName : 动画类型: scaleX x轴进行缩放
     *  value1       : 起始值,缩放起始值,1.0f就是默认大小
     *  value2       : 结束值,缩放结束值,1.5f意思在原来基础上放大0.5f
     *
     *  PS value 可以有N个,中间的是过度值,最后的是结束状态值
     */
    ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", 1.0f, 1.5f);
    ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", 1.0f, 1.5f);
    animatorSet.setDuration(500);
    animatorSet.setInterpolator(new LinearInterpolator());
    animatorSet.play(scaleX).with(scaleY);
    animatorSet.start();
}

透明度渐变

@SuppressLint("ObjectAnimatorBinding")
private void TestAlpha(View view) {
    /**
     *  alpha 范围值 0.0f-1.0f
     */
    ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", 1.0f, 0.5f);
    alpha.setDuration(500);
    alpha.start();
}

平移

  1. 对X轴
@SuppressLint("ObjectAnimatorBinding")
private void TestTranslationX(View view) {
    ObjectAnimator translation = ObjectAnimator.ofFloat(view, "translationX", 0, 300, 0);
    translation.setDuration(500);
    translation.start();
}

  1. 对Y轴
@SuppressLint("ObjectAnimatorBinding")
private void TestTranslationY(View view) {
    ObjectAnimator translation = ObjectAnimator.ofFloat(view, "translationY", 0, 300, 0);
    translation.setDuration(500);
    translation.start();
}

  1. 对XY轴
private void TestTranslation(View view) {
    AnimatorSet animatorSet = new AnimatorSet();
    ObjectAnimator translationX = ObjectAnimator.ofFloat(view, "translationX", 0, 300, 0);
    ObjectAnimator translationY = ObjectAnimator.ofFloat(view, "translationY", 0, 300, 0);
    animatorSet.setDuration(500);
    animatorSet.setInterpolator(new LinearInterpolator());
    animatorSet.play(translationX).with(translationY);
    animatorSet.start();
}

旋转

  1. 对X轴
private void TestRotationX(View view) {
    ObjectAnimator rotationX = ObjectAnimator.ofFloat(view, "rotationX", 0, 180);
    rotationX.setDuration(500);
    rotationX.start();
}

  1. 对Y轴
private void TestRotationY(View view) {
    ObjectAnimator rotationY = ObjectAnimator.ofFloat(view, "rotationY", 0, 180);
    rotationY.setDuration(500);
    rotationY.start();
}
  1. 对Z轴
private void TestRotation(View view) {
    /**
     * rotation 范围值 0-360
     */
    ObjectAnimator rotation = ObjectAnimator.ofFloat(view, "rotation", 0, 180);
    rotation.setDuration(500);
    rotation.start();
}

参考文章

  1. Android 实现属性动画平移,旋转,缩放,渐变
  2. ValueAnimator、objectAnimator的基础用法
  3. 自定义控件三部曲之动画篇(七)——ObjectAnimator基本使用

 历史上的今天

  1. 2019: Beyond Compare4 30天试用到期的解决办法(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

apache开启gzip压缩

我的买的是阿里云的服务器,或许不同服务商的路径不同,所以我的路径仅供参考。/alidata/server/httpd/conf/httpd.confA.开启模块:LoadModule deflate_module modules/mod_deflate.soLoadModule h...

记录一下ProgressBar的常用方式

前言记录一下ProgressBar的常用方式,加载动画,不转动的圆形,水平进度展示等。正文直入正题。隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读参考文章《android ProgressBar 圆形进度条的自定义样式》《Android加载动画常用做法...

毕淑敏:幸福是可以传染给别人的

01我曾看过一则新闻:英国有家报社,向社会有奖征答“谁是最幸福的人”,然后排出第一种最幸福的人,是一个妈妈给孩子洗完澡,怀抱着婴儿;第二种最幸福的人,是一个医生治好了病人并目送他远去;第三种最幸福的人,是一个孩子在海滩上筑起了沙堡;备选答案是,一个作家写完了著作的最后一个字,放下笔的那一瞬间。看...

Android String占位格式化

前言记录一下Android中String的占位。其实就是让指定内容固定占用多少个位置,主要是为了美化显示。简单记录一下,方便自己查阅。正文比如,下面打印是不够美观的[1][100]下面是比较好看的(美化后)[ 1][100]或[001][100]这样就占的宽度一样,看起...

Android的fontScale不随系统设置变化

前言由于Android开发中部分第三方应用字体过小,用户会调整Android系统的字体大小,但由于我们应用是定制化开发的,改变字体也会影响我们应用的字体显示。因此需求:定制化的APP内字体大小不随系统设置变化。正文在Activity中重写如下方法 @Override pr...

《MySQL基础教程》笔记4

前言本文主要是select语句的使用学习一下MySQL,一直没有系统的学习一下。最近有空,看了《MySQL基础教程-西泽梦路》,简单的做一下笔记。记录于此,方便自己回忆。MySQL中对大小写没有区分,我这里习惯性用小些。正文我这以Window版的phpstudy软件验证。需要进入...