Android 围绕中心旋转动画

2023-11-06

Android 围绕中心旋转动画

一 简介

开发中遇到扫描蓝牙动画需求,如下图所示:
在这里插入图片描述

因此以下简单记录一下,方便以后使用。

Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。

二 应用
1.xml中写好需要旋转的view。

我用了一个ConstraintLayout布局将要旋转的部分包括起来。

2.定义rotate旋转效果

在res/anim文件夹下新建rotation_animation.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
        android:duration="1500"
        android:fromDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="-1"
        android:repeatMode="restart"
        android:toDegrees="0" />
    <!--
    参数的含义
    duration:表示从android:fromDegrees转动到android:toDegrees所花费的时间
    fromDegrees="0":  起始的角度度数
    toDegrees="359" : 结束的角度度数
    pivotX="50%:旋转中心距离view的左顶点为50%距离,
    pivotY="50%: 距离view的上边缘为50%距离
    repeatCount="-1":重复次数,-1为一直重复
    repeatMode="restart":重复模式,restart从头开始重复,reverse即从结束开始向前重新运行
    实际效果为顺逆时针交替

    未用到属性:
    android:interpolator表示变化率,但不是运行速度。一个插补属性,
    可以将动画效果设置为加速,减速,反复,反弹等。默认为开始和结束慢中间快,

    android:startOffset 在调用start函数之后等待开始运行的时间,单位为毫秒,
    若为10,表示10ms后开始运行
    -->
</set>
3.在代码中设置应用
    //开始旋转
    Animation animation = AnimationUtils.loadAnimation(this,R.anim.rotation_animation);
    LinearInterpolator lin = new LinearInterpolator();//设置动画匀速运动
    animation.setInterpolator(lin);
    clRotation.startAnimation(animation);
    
    //停止旋转
    clRotation.clearAnimation(); 
    

  • setInterpolator表示设置旋转速率。LinearInterpolator为匀速效果,Accelerateinterpolator为加速效果、DecelerateInterpolator为减速效果。
  • 停止旋转最好用代码设置,也可以强制设置rotate转动多少圈,前者更好。
4.横竖屏切换导致旋转中心偏移解决办法
@Override  
public void onConfigurationChanged(Configuration newConfig) {  
 
    super.onConfigurationChanged(newConfig);  
  
    if (animation != null && clRotation != null && animation.hasStarted()) {  
        clRotation.clearAnimation();  
        clRotation.startAnimation(animation);  
    }  
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 围绕中心旋转动画 的相关文章

随机推荐

  • 20_rewrite 模块

    文章目录 rewrite 模块的if 指令 location 指令 location 匹配规则 location 匹配顺序 示例配置 rewrite 模块的if 指令 if syntax if condition default conte
  • Lombok首字母小写,第二个字母大写导致无法序列化的问题

    解决办法 在属性上添加以下注解 JsonProperty value xXxxx
  • JSP数据交互(一 response对象)

    response对象 JSP内置对象response response对象 转发与重定向 什么是转发 什么是重定向 JSP内置对象response 学习了如何使用JSP技术获取请求信息 JSP技术是如何将服务器响应返回给客户端的 下面介绍J
  • C语言指针、字符串以及字符的异同

    文章目录 介绍 小实验1 小实验2 在单片机中的应用 介绍 指针 是存放某种特定变量的特定地址 字符 单引号内的字符 占八位 字符串 多个字符加一个结束符 0 组成 但其本质是一个指向第一个字符的指针 小实验1 任务 判断 hello wo
  • JavaScript的三大组成部分之BOM

    目录 一 BOM基本介绍 1 基本概念 2 BOM 的组成 3 window对象 1 基本概念 2 常用属性 3 常用事件 4 常用方法 二 内置对象 1 Math数学对象 2 Date 日期对象 3 字符串对象 一 BOM基本介绍 1 基
  • windows加固-网络安全配置

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 协议安全 SYN攻击保护 启用TCP IP筛选 关闭139端口为例 关闭ICMP 禁ping 更改远程终端默认3389端口 关闭445 5355端口 系统防火墙 开
  • 神经网络之反向传播算法(自适应矩估计算法Adam变形形式之Adamax、Nadam)

    文章目录 自适应矩估计算法 Adam 的两种变形形式 1 Adamax算法原理 2 Nadam算法原理 3 算法实现 3 1 Adamax训练过程 3 2 Adamax测试过程及结果 3 3 Nadam训练过程 3 4 Nadam测试过程及
  • boost入门(一):boost简介

    前言 发现自己做为C 竟然没有用过boost 特地学习下如何使用boost 我作为初学者 会从入门指南开始 一点点深入了解boost 本文采用的版本是boost 1 75 0 boost 介绍 boost 是一个跨平台的C 工具库 是的 没
  • SQL Server入门(一) SQL Server2017 Developer和 SQL Server2017 Express 等各版本的区别。

    参考 http www shareblogs top 427 软件下载 https www microsoft com zh cn sql server sql server downloads https www microsoft co
  • 伺服速度控制模式接线图_伺服控制的三种模式,接线方式与参数设置的讲解

    伺服电机速度控制和转矩控制都是用模拟量来控制 位置控制是通过发脉冲来控制 具体采用什么控制方式要根据客户的要求以及满足何种运动功能来选择 接下来 给大家介绍伺服电机的三种控制方式 如果您对电机的速度 位置都没有要求 只要输出一个恒转矩 当然
  • 统计连续字符-2022年全国青少年信息素养大赛Python国赛第7题

    导读 超平老师计划推出 全国青少年信息素养大赛Python编程真题解析 50讲 这是超平老师解读Python编程挑战赛真题系列的第9讲 全国青少年信息素养大赛 原全国青少年电子信息智能创新大赛 是 世界机器人大会青少年机器人设计与信息素养大
  • 电磁仿真:十年磨一剑!基于HFSS、ADS微带滤波器仿真与设计

    作者 stone 仿真秀平台作者 CAE工程师如何提高仿真实力 冲击高薪 戳此了解详情 导读 自毕业至今 从事微波射频相关工作已经十年了 回想这个行业的点点滴滴 有一些个人的学习心得体会和大家分享一下 实践是检验真理的唯一标准 这句话一直伴
  • RNA-seq——三、使用Hisat2进行序列比对

    步骤 1 下载对应的index 2 序列比对 3 samtools 将sam文件转为bam文件 4 将bam文件载入IGV 为什么要比对 https www jianshu com p 681e02e7f9af Jimmy老师主要演示了四种
  • 什么是隐马尔可夫模型(HMM)?案例介绍

    HMM简介 隐马尔可夫模型 Hidden Markov Model HMM 是统计模型 它用来描述一个含有隐含未知参数的马尔可夫过程 其难点是从可观察的参数中确定该过程的隐含参数 然后利用这些参数来作进一步的分析 例如模式识别 一 简单案例
  • 微信小程序crypto-js AES 加解密数据

    微信小程序在与后台交互数据过程中 敏感数据需要加解密 本篇博客介绍在微信小程序中如何使用 crypto js 中的 AES 算法加解密数据 使用crypto js加解密详解 https blog csdn net Umbrella Um a
  • lua取模运算math.fmod和% 的区别

    我们知道 取模就是求余的意思 比如3 2 1这样子 lua中的 就是求余的运算符号 此外在数学库中还有一个math fmod的函数 他们都能进行求余运算 print 15 4 math fmod 15 4 输出 0 1 0 1 另外可以对小
  • C语言函数大全-- u 开头的函数

    u 开头的函数 1 ultoa 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 ungetc 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 ungetch 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 un
  • python集合中的元素是否可以重复_python中集合中的元素是否可以重复

    python中集合中的元素不可以重复 集合是一个无序的不重复元素序列 我们可以使用大括号 或者set 函数来创建一个集合 具体语法为 parame value01 value02 python中集合中的元素不可以重复 推荐学习 python
  • vue elementui导航菜单不对齐

    解决方法 给 el aside添加text align start el aside background color 3A4E67 color fff line height 200px text align start
  • Android 围绕中心旋转动画

    Android 围绕中心旋转动画 一 简介 开发中遇到扫描蓝牙动画需求 如下图所示 因此以下简单记录一下 方便以后使用 Android 平台提供了两类动画 一类是 Tween 动画 即通过对场景里的对象不断做图像变换 平移 缩放 旋转 产生