`
Bauble
  • 浏览: 67679 次
  • 性别: Icon_minigender_1
  • 来自: Mercury
社区版块
存档分类
最新评论

Android35_Animations使用(三)

阅读更多

 

一、AnimationSet的具体使用方法

       1.AnimationSetAnimation的子类;

       2.一个AnimationSet包含了一系列的Animation

       3.针对AnimationSet设置一些Animation的常见属性(如startOffsetduration等),可以被包含在AnimationSet当中的Animation集成;

例:一个AnimationSet中有两个Animation,效果叠加

AnimationSet animationSet = new AnimationSet(true);
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
		Animation.RELATIVE_TO_SELF,0.5f,
		Animation.RELATIVE_TO_SELF,0.5f);
rotateAnimation.setDuration(1000);
animationSet.addAnimation(rotateAnimation); 
animationSet.addAnimation(alphaAnimation);
image.startAnimation(animationSet);

 

二、Interpolator的具体使用方法

       Interpolator定义了动画变化的速率,在Animations框架当中定义了一下几种Interpolator

AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。

              AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速

              CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线

              DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速

              LinearInterpolator:动画以均匀的速率改变

set标签上:

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

如果一个set中包含了两种动画效果,要想这两种动画效果共享一个interpolator,可以在set标签上添加:

android:shareInterpolator="true"
如果不想共享一个interpolator,则可以在alpha等标签上添加。

另以上方法是在xml上处理interpolator,如果是在代码上设置共享一个interpolator,则可以在AnimationSet设置interpolator,如果不设置共享一个interpolator则可以在alpha等的对象上面设置interpolator:

animationSet.setInterpolator(new AccelerateInterpolator());

 或

alphaAnimation.setInterpolator(new AccelerateInterpolator());

 

 三、Frame-By-Frame Animations的使用方法

       Frame-By-Frame Animations是一帧一帧的格式显示动画效果。类似于电影胶片拍摄的手法。

例子程序:

       多张图片展示一个人行走的动画。

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
	<LinearLayout
	    android:orientation="horizontal"
	    android:layout_height="wrap_content" 
	    android:layout_width="wrap_content">
		<Button 
			android:id="@+id/button"
	    		android:layout_width="wrap_content"
	    		android:layout_height="wrap_content"
	    		android:text="运动"/>
	</LinearLayout>
	<LinearLayout
	    android:orientation="vertical"
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent">
		<ImageView 
			android:id="@+id/image"
	    	android:layout_width="wrap_content"
	    	android:layout_height="wrap_content"
	    	android:layout_centerInParent="true"/>	
	</LinearLayout>
</LinearLayout> 

 Anim.xml

 

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
	android:oneshot="false">
	<item android:drawable="@drawable/a_01" android:duration="50"/>
	<item android:drawable="@drawable/a_02" android:duration="50"/>
	<item android:drawable="@drawable/a_03" android:duration="50"/>
	<item android:drawable="@drawable/a_04" android:duration="50"/>
	<item android:drawable="@drawable/a_05" android:duration="50"/>
	<item android:drawable="@drawable/a_06" android:duration="50"/>
</animation-list> 

AnimationsActivity.java

package com.android.activity;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class AnimationsActivity extends Activity {
	private Button button = null;
	private ImageView imageView = null;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button = (Button)findViewById(R.id.button);
        imageView = (ImageView)findViewById(R.id.image);
        button.setOnClickListener(new ButtonListener());
    }
	class ButtonListener implements OnClickListener{
		public void onClick(View v) {
			imageView.setBackgroundResource(R.anim.anim);
			AnimationDrawable animationDrawable = (AnimationDrawable)
				imageView.getBackground();
			animationDrawable.start();
		}
	}
} 

  运行结果:

  • 大小: 14.3 KB
  • 大小: 16.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android-android_additive_animations.zip

    Android-android_additive_animations.zip,Android附加动画!,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    android-sdk-sources-android-28.rar

    在Android 9.0中,Project Treble进一步完善,增强了对硬件抽象层(HAL)的支持,使得第三方ROM和厂商可以更快地适配新的Android版本。 2. **Digital Wellbeing**:为了帮助用户更好地管理他们在移动设备上的时间,...

    android_additive_animations:Android的加性动画!

    在此处获得此库的良好概述: : 一体化要在您的项目中使用AdditiveAnimator ,请在build.gradle添加以下几行: dependencies { compile 'at.wirecube:additive_animations:1.9.0'}...repositories { jcenter()}快速...

    android-UI.zip_android_android java 界面_android ui_android 界面_校园导

    6. **动画(Animations)**:Android提供多种动画类型,如属性动画(Property Animation)、视图动画(View Animation)和过渡动画(Transition Animation),可用于创建吸引人的用户交互。 7. **自定义视图...

    Androidg_java_android_acceptxpj_

    在Android开发中,动画是提升用户体验的关键因素之一。"Androidg_java_android_acceptxpj_"这个主题聚焦...Material-Animations-master项目应该提供了丰富的示例代码和实践指导,是学习和提升Android动画技能的好资源。

    android_animations:Android动画-准备使用XML文件

    Android SDK本身提供了基础的动画支持,但开发者还可以使用第三方库来扩展功能。例如,NineOldAndroids允许在Android 2.x版本上使用新的动画API,而Lottie库则支持直接在Android中播放Adobe After Effects创建的...

    Android-UI.rar_android_android ui_ui

    在Android中,可以使用XML文件定义颜色资源,方便在整个应用中复用。同时,通过设置主题(Theme),可以全局改变应用的视觉样式,如字体、背景色、控件样式等。 5. **响应式布局(Responsive Layouts)**: 使用...

    android-UI.rar_android_android ui_ui

    6. **动画(Animations)**:Android支持多种类型的动画,如属性动画(Property Animation)、视图动画(View Animation)等,为用户界面增添动态效果,提高用户体验。 7. **触摸反馈(Touch Feedback)**:通过...

    Android-animations

    通过学习和使用"Android-animations",开发者不仅可以提高应用的视觉吸引力,还能确保应用在不同版本的Android系统上保持一致的用户体验。此外,熟悉"nineoldandroids"也有助于理解和使用Android的原生动画系统,这...

    Android_UI.rar_Android_UI_android_ui

    7. **动画(Animations)**:Android支持属性动画(Property Animation)、视图动画(View Animation)和过渡动画(Transition Animation),用于增强用户体验。例如,滑动切换效果、淡入淡出等。 8. **对话框...

    Android Animations动画使用详解

    ### Android Animations动画使用详解 #### 一、概述 Android平台提供了丰富的动画支持来增强用户界面的交互体验。本文档将详细介绍Android中的四种基本动画类型:`Alpha`(透明度变化)、`Scale`(缩放变化)、`...

    Android代码-Animations

    Animations Beautiful animations from AOSP 依賴 Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 查詢最新...

    Android View Animations

    For making animations more real, I created another project named Android Easing Functions which is an implementations of easing functions on Android. So, we need to dependent that project. Step 1 ...

    mars《Android开发视频教程》第二季part1

    11_Animations01、12_Animations02、14_Animations04、15_Animations05和17_Animations07这些章节,会深入讲解如何创建和使用这些动画,以及如何实现复杂的过渡效果,提升用户体验。 2. **AppWidget**:AppWidget是...

    android编程权威指南2随书源码

    01_FirstApp 02_MVC 03_ActivityLifecycle 05_SecondActivity 06_AndroidVersions 07_UIFragments 08_LayoutsAndWidgets 09_RecyclerView ...30_Animations 31_Locations 32_Maps 33_MaterialDesignTopics

    Android开发之Animations动画用法实例详解

    本文实例讲述了Android开发之Animations动画用法。分享给大家供大家参考,具体如下: 一、动画类型 Android的animation由四种类型组成:alpha、scale、translate、rotate XML配置文件中 alpha 渐变透明度...

    十大热门Android开源项目之 Material-Animations

    Material-Animations是专门为Android平台设计的一款开源项目,它致力于实现Material Design规范中的各种动画效果,使得开发者可以轻松地在自己的应用中添加生动、流畅的过渡动画。 项目的核心目标是提供Activity...

    [android.开发书籍].Android.3.0.Animations

    - 掌握Android 3.0中各种动画框架的使用方法。 - 学会如何设计和实现复杂的动画效果。 - 了解如何优化动画性能,避免影响用户体验。 - 能够独立完成包含高级动画效果的应用开发项目。 #### 六、结语 《Android 3.0...

    EventsCalendar_kotlinandroid_kotlin_

    【标题】"EventsCalendar_kotlinandroid_kotlin_" 指示这是一个使用Kotlin语言开发的Android日历应用,重点在于其包含多种动画效果。在Android应用开发中,Kotlin已经逐渐成为主流语言,以其简洁、安全和面向现代...

Global site tag (gtag.js) - Google Analytics