android 动画xml属性具体解释
/**
* 作者:crazyandcoder
* 联系:
* QQ : 275137657
* email: lijiwork@sina.com
* 转载请注明出处! */
android 动画属性具体解释
android中的动画属性主要分为四种,各自是alpha、scale、translate、rotate。我们如今来具体了解一下各个类型的意思。然后依据项目的需求要定义自己的动画。
- alpha 透明度渐变的动画效果
- scale 尺寸收缩渐变的动画效果
- translate 画面转换位置的动画效果
- rotate 画面转移旋转动画效果
载入动画我们能够通过两种方式,一种是xml布局的方式,还有一种就是纯的java代码方式。两种方式各有优势。依据须要能够自己选择。首先我们来看下xml的方式定义动画属性,须要在res文件夹下新建一个文件夹anim,详细的路径为res/anim,里面新建一个img_anim.xml文件。
<?xml version="1.0" encoding="utf-8"? >
<set> <alpha /> <rotate /> <scale /> <translate /> </set>
接下来我们分别了解当中的每一个属性的内容:
Alpha 透明度渐变的动画效果
- fromAlpha 动画開始时的透明度, 0.0~1.0之间的float类型的数字,0.0代表全然透明,1.0代表不透明
- toAlpha 动画结束时的透明度,同上
- interpolator 动画的显示速度,能够有加速、匀速等状态。
- duration 动画持续的时间
- fromYScale 代表起点Y方向上相对于自身的缩放比例。0.5缩小一半,1.0无变化,2.0放大一倍
- fromXScale 代表起点X方向上相对于自身的缩放比例。
- toXScale、toYScale与上面相对。代表结束时的x、y方向上的缩放比例
- pivotX,pivotY代表缩放的中心点x、y位置,
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <scale
android:duration="5000"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:pivotX="0.5"
android:pivotY="0.5"
android:repeatCount="55"
android:toXScale="2.0"
android:toYScale="2.0" /> </set>
能够看到这仅仅狗有小到大的变化过程,因为是在手机里面模拟动画的,所以缩放过程不是非常平滑,建议真机測试,效果更佳。
- fromDegrees 从初始的角度開始旋转,单位为“ ° ”
- toDegrees 结束时的度数
<? xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <rotate
android:duration="500"
android:fromDegrees="0"
android:pivotX="50%"
android:interpolator="@android:anim/linear_interpolator"
android:pivotY="50%"
android:repeatCount="-1"
android:toDegrees="360" /> </set>
package com.example.animationsdemo; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView; public class MainActivity extends Activity { private ImageView mImgAnim;
private Animation mAnimation; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mImgAnim=(ImageView)findViewById(R.id.img_anim);
mAnimation=AnimationUtils.loadAnimation(this, R.anim.img_anim);
mImgAnim.startAnimation(mAnimation); } }
实现结果演示:
因为是模拟器的缘故,再加上转化为gif格式的所以中间有点卡顿的现象。建议直接真机測试。
- fromXDelta 代表起始方向上x的位置
- fromYDelta 代表起始方向上y的位置
- toXDelta 代表结束时方向上x的位置
- toYDelta 代表结束时方向上y的位置
我们来实现一个水平移动的动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <translate
android:duration="3000"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:repeatCount="-1"
android:toXDelta="200%"
android:toYDelta="0%" /> </set>
效果为:
公共的属性:
- repeatCount 动画反复的次数,-1代表无线循环
- fillAfter 假设设置为true的话动画结束后就停止,保持动画结束时的状态。
- duration 动画持续的时间
android 动画xml属性具体解释的更多相关文章
- Android--应用开发3(Android layout XML属性)
Android layout XML属性 转载:http://www.cnblogs.com/playing/archive/2011/04/07/2008620.html Layout对于迅速的搭建 ...
- Android中View自己定义XML属性具体解释以及R.attr与R.styleable的差别
为View加入自己定义XML属性 Android中的各种Widget都提供了非常多XML属性,我们能够利用这些XML属性在layout文件里为Widget的属性赋值. 例如以下所看到的: <Te ...
- Android动画(二)-属性动画
我们在上一篇博客中,讨论了视图动画与帧动画.那么这节课则要讨论更复杂,更强大的Property animation(属性动画). 视图动画使用简单,但是功能也简单.(只有那四种功能).并且也不改变Vi ...
- 【Android UI】Android Layout XML属性
Layout对于迅速的搭建界面和提高界面在不同分辨率的屏幕上的适应性具有很大的作用.这里简要介绍Android的Layout和研究一下它的实现. Android有Layout:FrameLayout, ...
- Android Layout XML属性
转载自并做少量添加:http://www.cnblogs.com/playing/archive/2011/04/07/2008620.html Layout对于迅速的搭建界面和提高界面在不同分辨率的 ...
- Android 动画及属性动画
Android 平台提供了一套完整的动画框架,在Android3.0之前有两种动画Tween Animation(补间动画)和Frame Animation(帧动画), 对应SDK中的View Ani ...
- android AndroidManifest.xml 属性详细解析
一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...
- Android自定义XML属性
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-style ...
- Android自定义XML属性以及遇到的命名空间的问题
转载请注明出处:http://www.cnblogs.com/kross/p/3458068.html 最近在做一些UI,很蠢很蠢的重复写了很多代码,比如一个自定义的UI Tab,由一个ImageVi ...
随机推荐
- luogu 3393 逃离僵尸岛
题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入 ...
- Android中的Junit测试
在开发中Junit测试可以很方便的帮助开者尽可能早的发现并处理问题,而且使用也非常简单,只需要导入Junit测试相关的jar包并创建测试类,就可以对业务功能进行测试,而不用为了测试在代码中添加输出语句 ...
- angular route 与 django urls 冲突怎么解决?
app.js var app = angular.module('app', [ 'ngResource', 'ngRoute', // 'ui.bootstrap', // 'ngResource' ...
- nginx旧版本升级新版本
比如我们现在所用的是 nginx 是1.4 版本,过了一段时间后我们有新的稳定版 1.6 问世,我们想升级到新的版本怎么办? 1.把新版本解压.安装,然后将 sbin/ng ...
- linux驱动编译时候出现的问题
1.在编译驱动的时候,提示错误,找不到<asm/xxxx.h>这些类的头文件? 答:因为在内核编译的时候,会在内核目录的include中创建一个asm文件再软链接到对应的一些架构.比如我当 ...
- 关于git及其github的使用
一:序言(就是瞎扯) 人们都说不会使用git和github的程序员都不是好程序员,是的,当我第一次听到的时候有点失望.因为我也不会...但是这句话激起了我学习使用git的动力(其实也没怎么深入的学习) ...
- python ORM理解、元类
元类 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143191 ...
- 帆软FineBI试用
FineBI是帆软软件有限公司推出的一款商业智能(Business Intelligence)产品,FineBI的本质是通过分析企业已有的信息化数据,帮助企业发现并解决存在的问题,预测模拟企业将来的发 ...
- malloc()和free()的原理及实现
在C语言中只能通过malloc()和其派生的函数进行动态的申请内存,而实现的根本是通过系统调用实现的(在linux下是通过sbrk()系统调用实现). malloc()到底从哪里得到了内存空间?答案是 ...
- CSU 1506 Double Shortest Paths
1506: Double Shortest Paths Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 49 Solved: 5 Description ...