4.4.5 Android 属性动画Animator

博客《Animation动画详解(四)——ValueAnimator基本使用》对应源码 博客《Animation动画详解(四)——ValueAnimator基本使用》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/50525521 立即下载

0:首先在res下面创建一个animator的文件夹。然后再这里面创建一个文件animator.xml

其实这里的valueType 也可以不写,因为如果写了写错了就不会执行了,

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together">
    <objectAnimator android:duration="5000"
        android:propertyName="rotation"
        android:valueType="floatType"
        android:valueFrom="0"
        android:valueTo="720"
        />
    <objectAnimator android:duration="5000"
        android:propertyName="translationX"
        android:valueType="floatType"
        android:valueFrom="0"
        android:valueTo="300"
        ></objectAnimator>
</set>

1:布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/composer_camera"
        android:id="@+id/composer_camera"
        android:onClick="animator"/>
</RelativeLayout>


2:

package tech.androidstudio.animatordemo;

import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void animator(View view) {
        ImageView imageView =(ImageView)findViewById(R.id.composer_camera);
        Animator animator_camera = AnimatorInflater.loadAnimator(this,R.animator.animator);
        animator_camera.setTarget(imageView);
        animator_camera.start();
        Toast.makeText(this,"clicked",Toast.LENGTH_LONG).show();
    }
}


4: 如果要实现回收的效果

首先在animator 里面创建回收的xml 文件

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together">
    <objectAnimator android:duration="5000"
        android:propertyName="rotation"
        android:valueType="floatType"
        android:valueFrom="0"
        android:valueTo="720"
        />
    <objectAnimator android:duration="5000"
        android:propertyName="translationX"
        android:valueType="floatType"
        android:valueFrom="300"
        android:valueTo="0"
        ></objectAnimator>
</set>


然后在MainActivity 里面添加一个全局变量mOut来判断是否出去了还是回到了原地。

package tech.androidstudio.animatordemo;

import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private static boolean mOut=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void animator(View view) {
        ImageView imageView =(ImageView)findViewById(R.id.composer_camera);
        Animator animator_camera =null;
        if(mOut==false) {
             animator_camera= AnimatorInflater.loadAnimator(this, R.animator.animator);
            mOut=true;
        }else{
            animator_camera = AnimatorInflater.loadAnimator(this, R.animator.back);
            mOut=false;
        }
        animator_camera.setTarget(imageView);
        animator_camera.start();
        Toast.makeText(this,"clicked",Toast.LENGTH_LONG).show();
    }
}




Mac微信聊天记录备份终极指南:用软链接轻松迁移到外接硬盘(附重签名教程) 本文详细介绍了如何通过软链接技术将Mac微信聊天记录备份迁移到外接硬盘,解决内置存储空间不足的问题。教程包括备份文件定位、软链接创建及微信重签名步骤,帮助用户高效管理微信数据,释放Mac存储空间。 阅读详情

相关推荐

单细胞测序数据分析——细胞通讯 CellChat

cellchat

G2530051386的博客 1万+

解决“java.lang.NullPointerException:Attempt to read from field

解决异常 java.lang.NullPointerException: Attempt to read from field ‘int android.view.View.mViewFlags’ on a null object reference 记录一下 很多资料都写的是动画加载问题 我自己的代码没有任何动画 所以不存在动画加载问题 那么只能排查!最后发现是后台数据返回不正确导致 正常是在返回data 和分页 pageEntity 对象是有数据的! 这次返回都是null 导致渲染数据没有判空出现的

weixin_43148719的博客 1万+

ATAC-seq数据分析流程学习记录及总结

记录ATAC-seq数据分析流程,主要是参考健明老师的教程以及网上各种学习资源进行总结,网址在下面。

ACGTexplorer的博客 3753

属性动画的介绍

简单介绍下属性动画

qq_37776700的博客 586

电商客服效率翻倍!手把手教你用影刀RPA+AI搭建智能回复系统(附实战配置)

本文详细介绍了如何利用影刀RPA+AI技术搭建电商智能客服系统,实现24小时在线回复,大幅提升客服效率。通过零代码配置、Excel词库管理和AI语义理解,系统能处理80%常规咨询,响应速度稳定在3秒内,特别适合中小电商降低成本并提升服务质量。

weixin_42520661的博客 549

ORB-SLAM3的Euroc数据集测试

(一)测试运行 不同模式测试过程(以MH_03为例) 1、pure mono 运行SLAM: cd ORB-SLAM3/Example #run slam ./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH03 ./Monocular/EuRoC_TimeStamps/MH03.txt dataset-MH03_mono 利用ORB-SLAM3自带..

ljtx200888的博客 9143

Android4.4修改activity默认切换动画

如题的需求,如何实现呢? 一种方法是在activity启动或者finish的时候调用overridePendingTransition方法,但是此方法只针对此单个activity的进入退出切换动画,如果想要统一系统所有activity切换的风格,显然这种方法是不现实的。 那么有没有其他的一劳永逸的方法呢?当然有,就是修改系统activity的主题theme,下边仅举activity退出

kevin's cache的专栏 3005

PDAF相位对焦原理

pdaf光路图

camerall 1万+

Android 4.4.2引入的超炫动画库

酷炫! 作者博客 http://rkhcy.github.io/ 源码地址 https://github.com/Rkhcy/TransitionNote Google Demo https://github.com/android/platform_frameworks_support 目录 概述 Scene

hzp666的博客 533

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 892

Open3D 机载点云电力线提取【2025最新版】

传统方法实现的机载点云电力线分割提取。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 4468

Android 4.2手机后属性动画没效果。设置;

必须要设置过度动画缩放与动画程序时长调整。。如果不设置的话    Android默认的Interpolator类与ObjectAnimator类相关的API 将无法使用。设置大于1X或者小于1X的话 会出现动画过程出错更加快速或者慢速。 如果设置关闭的话 动画过程不执行,只执行起始与结束。。。。   经过本人测试并不影响 View Animation, 因为View Animat

693的专栏 3017

ConvNeXt 改进 :ConvNeXt添加GnConv递归门控卷积,二次创新CNBlock结构 ,独家首发

视觉 Transformer 在多种任务中取得了显著的成功,这得益于基于点积自注意力的新空间建模机制。视觉 Transformer 中的关键因素——即输入自适应、长距离和高阶空间交互——也可以通过卷积框架高效实现。作者提出了递归门控卷积(Recursive Gated Convolution,简称 gnConv),通过门控卷积和递归设计执行高阶空间交互。该新操作具有高度的灵活性和可定制性,兼容各种卷积变体,并将自注意力中的二阶交互扩展到任意阶数,而不会引入显著的额外计算。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 234

Android Fragment中载入Fragment时注意事项

当你在Android中使用Fragment时,需要在Fragament中载入另一个Fragment的时候使用findFragmentById方法载入时,android5.0以下的时候是没有任何问题的,但是 Android5.0以上手机获取到fragment的就是空的,即为报出空指针异常,解决方法如下: 1.new出这个fragment 2.使用getActivity().getFragmen

guibao513的专栏 380

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 一般动画Animation和属性动画Animator

一Animations介绍 Animations的分类 Animations的使用方法代码中使用 Animation的四个子类 具体使用方法 Animator介绍 Animation和Animator比较 关键接口介绍 Animator使用实例布局 主函数 animator_scalexml一、Animations介绍 Animations是一个实现android UI界面动画效果的API,An

liujiaoruiIT的博客 2500

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

属性动画之Animator API基本使用

上一篇中我们简单的介绍了如何使用视图动画Animation API的基本使用,今天就来介绍一下功能更为强大的属性动画Animator API的基本使用,首先我们来看一看Animator的继承结构: Animator public abstract class AnimatorextendsObjectimplementsCloneable java.lang.Obje...

hfut_why的博客 4503

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android Framework 窗口子系统 (07)窗口动画之Animation & Animator

系列文章解读&说明: Android Framework 窗口子系统 的 分析主要分为以下部分: Android Framework 窗口子系统 (01)WindowMangerService基础知识 Android Framework 窗口子系统 (02) 应用进程和WMS之间的关系 Android Framework 窗口子系统 (03) 窗口显示次序 Android Fra...

wangdsh的博客 2310

Android 安卓动画 属性动画 - 组合动画(3)

在此为大家准备了四节优质的Android高级进阶视频:架构师项目实战——全球首批Android开发者对Android架构的见解。

2401_84149635的博客 1126

【Android 】Android studior中res下创建anim和animator动画,理解如何使用不同的文件夹

文件夹用途动画类型示例anim存放逐帧动画和补间动画的资源文件逐帧动画、补间动画淡入淡出、逐帧动画、缩放动画animator存放属性动画的资源文件属性动画、多值动画旋转动画、缩放和透明度动画在 Android Studio 中,anim 和 animator 文件夹都用于存放动画相关的资源文件,但它们的用途和使用方式略有不同。

资深全栈开发工程师 3966

Android动画(二):属性动画

Android属性动画

kayyoo的博客 1178

Android动画之属性动画Animator详解(卫星菜单)

今天详细看了一下Android属性动画,然后做了一个网上比较火的卫星菜单的demo,下面介绍一下卫星菜单的制作方法

jl_stone的博客 1179

Android属性动画和补间动画的区别

1、补间动画Animation Animation -TranslateAnimation -AlphaAnimation -ScaleAnimation -RotateAnimation 缺点:补间动画只是视觉效果改变,并没有改变控件的属性,所以尽量少用 2、属性动画Animator Animator -ValueAnimator 属性的值变了 视觉没变 -ObjectAnimator 属性、视...

分享Android开发知识 1019

安卓Animator动画详解!

首先介绍传统的五类动画的常用属性: 1.translationX/translationY  偏移定义的距离的动画效果(前者是在X轴上,后者在Y轴上) 2.rotation/rotationX/rotationY 旋转动画 3.scaleX/scaleY 缩放动画 4.X/Y 移动到点X 或点Y 的动画 5.alpha 透明度动画 其次是常用的方法和类: ValueAnima

cuishikun9527的博客 1336

Android 属性动画Animator

做个记录,之前项目中用得比较少 一、Activity中代码段 /** * 动态生成ValueAnimator * 执行后不断改变view得最小宽度 */ private fun animationBigger() { //属性从300递增到500 val anim = ValueAnimator.ofInt(300, 400).apply { this.duration = 2000 //执行时长

风吹草低见牛羊 707

Android 属性动画特效

在 Android 3.0 之前已有的动画框架 Animation 存在一些局限性—— 动画改变的只是显示,并不能响应事件(相比属性动画,视图动画的一个非常大的缺陷就是不具备交互性,当某个元素发生视图动画后,其响应事件的位置依然在动画前的地方,所以视图动画只能做普通的动画效果,避免交互的发生。它的优点是效率比较高使用方便)。 本文要实现的效果如下: 在这之前先简单的介绍

antimage08的博客 628

android animator xml没效果_Android动画系列之属性动画

秦子帅明确目标,每天进步一点点.....这篇文章总结一下属性动画先相关知识,属性动画相较帧动画和补间动画更强大,帧动画和补间动画只能应用于 View 及其子类,而属性动画可以修改任何对象的属性值,属性值可在指定的一段时间内自动改变,根据对象属性值的变化进而实现更复杂的动画。属性动画的常用设置ValueAnimatorObjectAnimator关键帧插值器和估值器Gif 有点儿卡顿,谁有...

weixin_33238848的博客 194
上一篇: 4.4.4 Android animation List 实现充能塔的效果
下一篇: thinkpad E431机器 怎么让直接按F1换为按住fn再按F1?.
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值