`
修博龙泉
  • 浏览: 317150 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android动画功能实现

 
阅读更多
动画功能其实很简单,主要实现过程如下
android动画:主要有一下四种方式
    alpha        渐变透明度动画效果
    scale        渐变尺寸伸缩动画效果
    translate  画面转换位置移动动画效果
    rotate      画面转移旋转动画效果
android动画属性说明:
Tween Animation共同的节点属性
属性[类型] 功能 备注
Duration[long] 属性为动画持续时间 时间以毫秒为单位
fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用
fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用

interpolator 指定一个动画的插入器 有一些常见的插入器
accelerate_decelerate_interpolator  加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
repeatCount[int] 动画的重复次数
RepeatMode[int] 定义重复的行为 1:重新开始  2:plays backward
startOffset[long] 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
zAdjustment[int] 定义动画的Z Order的改变 0:保持Z Order不变
1:保持在最上层
-1:保持在最下层


alpha 渐变透明度动画效果

fromAlpha 属性为动画起始时透明度

0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字

duration为动画持续时间,ms单位

fromXScale[float] fromYScale[float] 为动画起始时,X、Y坐标上的伸缩尺寸 0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大
toXScale [float]
toYScale[float] 为动画结束时,X、Y坐标上的伸缩尺寸
pivotX[float]
pivotY[float] 为动画相对于物件的X、Y坐标的开始位置 属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

fromXDelta
toXDelta 为动画、结束起始时 X坐标上的位置
fromYDelta
toYDelta 为动画、结束起始时 Y坐标

fromDegrees 为动画起始时物件的角度 说明
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
pivotX
pivotY 为动画相对于物件的X、Y坐标的开始位 说明:以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置

主要代码

1:首先定义一个动画的xml文件。多个动画需要设置不同的xml文件,android动画文件一般放在/res/anim/xx.xml。动画文件一般是在java代码中直接调用。

myanim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- 透明度变化 -->
	 <alpha  
	 	android:fromAlpha="0.1"
	 	android:toAlpha="100"
	 	android:duration="2000"
	 />
	 <!--android:duration  属性为动画持续时间 	时间以毫秒为单位 -->
	 <!-- 尺寸变化 -->
	 <scale
	     android:interpolator="@android:anim/decelerate_interpolator"
	     android:fromXScale="0.0"
	     android:toXScale="1.4"
	     android:fromYScale="0.0"
	     android:toYScale="1.4"
	     android:pivotX="50%"
	     android:pivotY="50%"
	     android:fillAfter="false"
	     android:duration="3000"
	 />
	 <!--位置变化 -->
	 <translate
		android:fromXDelta="30"
		android:toXDelta="-80"
		android:fromYDelta="30"
		android:toYDelta="300"
		android:duration="2000"/>
	 <!--旋转变化 -->
	 <rotate
		android:interpolator="@android:anim/accelerate_decelerate_interpolator"
		android:fromDegrees="0"
		android:toDegrees="+350"
		android:pivotX="50%"
		android:pivotY="50%"
		android:duration="3000" 
	/>   
</set>


2:在main.xml 添加一个imageview控件用来显示android动画
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
	
	<ImageView 
	    android:id="@+id/myImageView"
	    android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/ic_launcher"
	    /> 
	    <!--  com.mixian.activity.MyView
	    android:id="@+id/myview"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"    
	/>  --> 
</LinearLayout>

3:编写调用java代码
 Animation animation = AnimationUtils.loadAnimation(this, R.anim.myanim);
        ImageView imageView = (ImageView)findViewById(R.id.myImageView);
        imageView.startAnimation(animation);

package com.mixian.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class DrawViewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.myanim);
        ImageView imageView = (ImageView)findViewById(R.id.myImageView);
        imageView.startAnimation(animation);
        
    }
}
分享到:
评论

相关推荐

    android动画实现ListView折叠展开

    首先,我们需要理解Android中的ListView工作原理。ListView通过复用视图(view recycling)机制提高了性能,当一个item滑出屏幕时,它的视图会被回收并用于显示新的item。因此,在实现折叠动画时,我们需要考虑到...

    Android使用ViewFlipper实现Switch动画特效。

    在Android中,有两种主要类型的动画:属性动画(Property Animation)和视图动画(View Animation)。视图动画较为简单,适用于API等级较低的设备,而属性动画则提供了更强大的功能,可以改变对象的任意属性。对于...

    Android 动画实现广告播放

    视图动画则是早期版本Android中的动画机制,它主要是通过对视图的位置、大小等属性进行欺骗性改变来实现动画效果。 对于图片的平移和缩放,我们可以使用属性动画中的ObjectAnimator或者ValueAnimator来实现。...

    android 扇形菜单(属性动画实现)

    本文将深入探讨如何使用属性动画在Android中实现这种效果。 首先,我们要理解Android属性动画系统的基本概念。属性动画是Android 3.0(API Level 11)引入的一个功能,它允许开发者在没有实际改变视图属性的情况下...

    Android各种动画效果集合(旋转动画+折叠翻转+点赞动画+折叠书架+按钮切换动画+模糊动画等等)

    本文将深入探讨在Android中实现的各种动画效果,包括旋转动画、折叠翻转、点赞动画、折叠书架、按钮切换动画以及模糊动画等。 1. **旋转动画**: 旋转动画在Android中可以通过` RotateAnimation `类来实现。开发者...

    Android动画之Tween动画实现

    Android 平台提供了两类...本例子主要实现了Tweene动画,实现了页面等待、开门、元素旋转平移缩放渐变等功能,并且使用了在Activity界面直接操作动画、重写View处理动画、利用XML处理动画等技术,是非常不错的资源。

    android实现火箭动画清理内存

    "android实现火箭动画清理内存"这个主题就是关于如何在Android应用程序中结合火箭动画来模拟一个内存清理的过程,从而为用户提供一种直观且有趣的交互方式。在这个过程中,我们将深入探讨`Animation`类和`...

    android 清理缓存火箭动画Demo

    【Android 清理缓存火箭动画Demo】是一个用于展示如何在Android应用中实现类似360清理缓存时出现的火箭升空动画效果的示例项目。这个Demo旨在帮助开发者理解如何结合动画与实际功能,比如清理缓存,来提升用户体验。...

    Android录音的声波动画

    在Android开发中,创建一个能够显示声波动画的录音应用是一项有趣的挑战,它结合了多媒体处理、用户界面设计以及实时数据可视化。以下是对这个"Android录音的声波动画"项目的关键知识点的详细解释: 1. **Android ...

    android 录音 动画

    在Android中,可以使用OnTouchListener来实现,当用户按下并持续一段时间后开始录音,上滑则需要监听滑动事件,如GestureDetector或Scroller类,判断上滑动作并取消录音。 3. **动画设计**: 在录音过程中,话筒图标...

    Android动画实现轮盘效果

    然而,为了实现更复杂的功能,如动态加载轮盘元素、调整旋转速度或添加物理模拟等,可能需要深入研究Android的自定义View机制和动画框架。在实践中,不断调试和优化将帮助你打造一个更加真实、流畅的轮盘体验。 ...

    android菜单展开的动画效果

    本文将深入探讨如何在Android中创建一个动态的菜单展开动画,以此来模仿卫星导航菜单(Satellite Menu)的效果,类似于一个中心点发射出多个选项的动画。这种效果常见于许多现代移动应用,它不仅美观,还能帮助用户...

    android属性动画的暂停

    本篇将深入探讨如何在Android中实现属性动画的暂停和播放停止功能。 首先,我们需要了解属性动画的基本概念。与帧动画(Frame Animation)不同,属性动画不依赖于视图的绘制循环,它会直接改变对象的属性并更新UI。...

    Android功能实现,自定义进度条

    Android动画功能实现,博客地址1:https://blog.csdn.net/dreams_deng/article/details/104752619 Android ProgressBar 自定义动画,博客地址2:https://blog.csdn.net/dreams_deng/article/details/104756011

    android 动画实现侧滑菜单效果

    本文将详细讲解如何使用动画来实现这一功能。 首先,侧滑菜单通常由一个主内容视图和一个隐藏的菜单视图组成。在用户触发特定手势(如从屏幕边缘向内滑动)时,菜单视图会从屏幕边缘滑出。这种效果可以通过Android...

    android自定义ImageView实现旋转动画

    在Android中,我们可以使用`ValueAnimator`或者`ObjectAnimator`来创建动画。对于XYZ轴的旋转,我们需要对三个轴分别进行操作。首先,定义一个`AnimatorSet`来组合三个轴的动画: ```java private AnimatorSet ...

    android动画例子大全

    在Android中,补间动画通常通过`Animation`类来实现,包括旋转(RotateAnimation)、平移(TranslateAnimation)、缩放(ScaleAnimation)和透明度变化(AlphaAnimation)。这些动画可以组合使用,形成复杂的动态...

    android多窗帘动画,平移动画,渐变动画实现

    Android窗帘动画,平移动画,渐变动画,采用了canvas画图的方式实现如上三种动画的功能

    Android-Andorid实现垃圾桶开关动画

    首先,Android中的动画大致可以分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。属性动画系统是在Android 3.0(API level 11)引入的,它可以改变对象的任何属性并随着时间的推移呈现...

    android实现直播点赞飘心动画效果.zip

    首先,我们需要理解Android中的动画系统。Android提供了多种类型的动画,如属性动画(Property Animation)、补间动画(Tween Animation)和帧动画(Frame Animation)。在这个案例中,通常会使用属性动画,因为它...

Global site tag (gtag.js) - Google Analytics