本帖最后由 liu 于 2018-12-27 16:02 编辑

TranslateAnimation位移动画

实现有两种方式:

一、xml+java代码

在res下新建anim文件夹,在res/anim下新建translate.xml:

[XML] 纯文本查看 复制代码<?xml version="1.0" encoding="utf-8"?>

android:duration="2000"

android:fromXDelta="0"

android:fromYDelta="0"

android:interpolator="@android:anim/linear_interpolator"

android:repeatCount="-1"

android:repeatMode="reverse"

android:toXDelta="100%p"

android:toYDelta="0%" />

android:duration             动画持续时长

android:fillAfter              动画结束之后是否保持动画的最终状态

android:fillBefore            动画结束之后是否保持动画开始前的状态

android:fromXDelta         动画开始时,在X轴方向上的位置

android:fromYDelta         动画开始时,在Y轴方向上的位置

android:interpolator         动画插值器

android:repeatCount        动画重复的次数

android:repeatMode         动画重复的Mode

android:startOffset           动画播放延迟时长

android:toXDelta              动画移动在X轴的目标位置

android:toYDelta              动画移动在Y轴的目标位置

动画开始和结束时的X、Y坐标位置的值有三种:

1、数字                           例如100,单位dp

2、百分比例如100%,相对于自己控件宽度的百分比

3、百分比+”p”                  例如100%p,相对于自己控件的父控件的百分比

activity_main.xml:

[XML] 纯文本查看 复制代码<?xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:gravity="center_vertical"

android:layout_height="match_parent">

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:text="translate" />

java代码:

[Java] 纯文本查看 复制代码package com.imooc.helloworld.firstapplication;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.view.ViewStub;

import android.view.animation.AnimationUtils;

import android.view.animation.TranslateAnimation;

import android.widget.Button;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final Button button = (Button) findViewById(R.id.btn);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

TranslateAnimation translateAnimation = (TranslateAnimation) AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate);

view.startAnimation(translateAnimation);

}

});

}

}运行结果:

x.gif (111.9 KB, 下载次数: 6)

2018-12-27 15:51 上传

二、java代码实现

[Java] 纯文本查看 复制代码package com.imooc.helloworld.firstapplication;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.view.ViewStub;

import android.view.animation.AnimationUtils;

import android.view.animation.ScaleAnimation;

import android.view.animation.TranslateAnimation;

import android.widget.Button;

public class MainActivity extends AppCompatActivity {

private Button mButton;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mButton = (Button) findViewById(R.id.btn);

mButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

translate();

}

});

}

private void translate() {

TranslateAnimation translateAnimation1 = new TranslateAnimation(0,300,0,0);

//设置动画持续时长

translateAnimation1.setDuration(1000);

//设置动画结束之后的状态是否是动画的最终状态

translateAnimation1.setFillAfter(true);

//设置动画的重复模式:反转REVERSE和重新开始RESTART

translateAnimation1.setRepeatMode(ScaleAnimation.REVERSE);

//设置动画播放次数

translateAnimation1.setRepeatCount(-1);

//开始动画

mButton.startAnimation(translateAnimation1);

}

}

运行结果:

x.gif (75.24 KB, 下载次数: 6)

2018-12-27 15:59 上传

android偏移动画,Android新手开发之旅-Android动画之位移动画相关推荐

  1. 学习Android从0开始之开发工具篇-Android studio详解

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android studio详解 我们古人又云:工欲善其事,必先利其器. 1.android studio的背景 Android Studio 是 ...

  2. 先进技术android,React Native实战(JavaScript开发iOS和Android应用)/计算机科学先进技术译丛...

    导语 内容提要 本书作者Nader Dabit是AWS Mobile开发人员.React Native Training创始人和React Native Radio播客主持人.本书旨在帮助iOS.An ...

  3. android音乐播放器的开发与设计,Android音乐播放器的设计与实现

    内容简介: Android音乐播放器的设计与实现,毕业论文,共21页,7729字. 摘要:本文主要介绍了一个基于Andriod的音乐播放器的设计与实现.主要包括可行性分析,需求分析,App功能设计及实 ...

  4. Android音乐播放器eclipse,简单的Android音乐播放器 eclipse开发的基于Android平台的音乐播放器 - 下载 - 搜珍网...

    压缩包 : 音乐播放器.zip 列表 音乐播放器/ 音乐播放器/.classpath 音乐播放器/.project 音乐播放器/.settings/ 音乐播放器/.settings/org.eclip ...

  5. Android 开发者必知的开发资源

    英文原文:Bongzimo  翻译: ImportNew-黄小非 译文链接:http://www.importnew.com/3988.html Android 开发者必知的开发资源 随着Androi ...

  6. android task与back stack 开发文档翻译 - 1

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明"转",那么均为原创,转贴请注明链接 android task与back stack 开发文档翻译 - 1 andro ...

  7. Android直播开发之旅(25):使用AES算法加密多媒体文件(+RSA+MD5+Base64)

    文章目录 1. AES算法 1.1 AES加密过程 1.1.1 字节代替(SubBytes) 1.1.2 行移位(ShiftRows) 1.1.3 列混合(MixColumns) 1.1.4 加轮密钥 ...

  8. (转载)Android游戏开发之旅一 长按Button原理

    (转载)http://www.android123.com.cn/androidkaifa/538.html 作者: Android开发网原创 时间: 2010-06-22 今天Android123开 ...

  9. Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发

    Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...

最新文章

  1. 麦克纳姆轮运动原理_【带字幕视频】麦克纳姆轮你了解多少?ESP32的WIFI信号,居然能覆盖10公里?...
  2. 新的Teams API权限控制
  3. gamaredon_Gamaredon组织某样本分析
  4. 数据表的创建(一对多,多对多)
  5. python网站访问日志分析_python分析apache网站日志web日志的代码
  6. Tarjan算法查找强联通组件的程序
  7. 推荐微信小程序常用的几个UI组
  8. E盾网络验证企业版个人版离线版加密防破解易语言源码加密对接好的自绘界面3
  9. 外贸软件常见图片类问题丨汇信
  10. 前苏格拉底时期的古希腊哲学流派
  11. 关于如何使用java,将Office文件转换成PDF格式
  12. Ubuntu下交叉编译Qt库并移植至ARM板上
  13. flutter学习之基础组件(一)
  14. 基于tkinter+win32+pynput实现python的QQ微信刷屏(比某些文章稍微高级一点)
  15. Java软件测试工程师之学习进阶路线
  16. SSL证书、 der、 cer、 pem区别
  17. 学计算机选择什么编程语言好一些?
  18. 【Shading】Shadow Mapping 阴影映射
  19. 天融信防火墙保存配置_天融信防火墙 通用配置
  20. Android点击文字编辑进行缩放、移动和改变字体、颜色的实现

热门文章

  1. 上下位机?透明传输?DTU相关小知识1分钟让你快速了解
  2. 网站网页打开慢是什么原因呢
  3. modernizr_使用Modernizr和Yepnope进行递归增强
  4. 社区团购独角兽猝死之因
  5. 骁龙865与鸿蒙900,麒麟9000性能详解:横向对比骁龙865 Plus/骁龙865谁更强?
  6. 银行招聘----数学运算
  7. 【企业】海底捞,知多少? 学什么?
  8. JDK 版本升级到11提示:无法访问com.sun.beans.introspect.PropertyInfo
  9. Python封装mysqloracle数据库连接池
  10. 让整个网站网页变灰的方法