Android 2.2 API demos --- animation

2024-03-25 02:18
文章标签 android api 2.2 animation demos

本文主要是介绍Android 2.2 API demos --- animation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android主要提供了两种创建动画机制:补间动画(tweened animation)和逐帧动画(frame-by-frame animation)。

补间动画主要完成一些简单的转场,例如位置、大小变化;

逐帧动画主要是依次加载一系列的可绘制资源。

一、补间动画

1. Tweened Animation可以运用在view,surface或者其它对象上,主要分四类:

Alpha         透明度渐变动画
Scale         尺寸渐变动画
Translate         位置移动动画
Rotate         画面旋转动画

动画属性介绍:

Alpha         
fromAlpha         动画起始时透明度,0.0表示完全透明
toAlpha         动画结束时透明度,1.0表示完全不透明
Scale         
fromXScale         动画起始时X坐标上的伸缩尺寸
toXScale         动画结束时X坐标上的伸缩尺寸
fromYScale         动画起始时Y坐标上的伸缩尺寸
toYScale         动画结束时Y坐标上的伸缩尺寸
pivotX         动画相对于物件的X坐标的开始位置
pivotY         动画相对于物件的Y坐标的开始位置
Translate         
fromXDelta         动画起始时X坐标上的位置
toXDelta         动画结束时X坐标上的位置
fromYDelta         动画起始时Y坐标上的位置
toYDelta         动画结束时Y坐标上的位置
Rotate         
fromDegrees         动画起始时物件的角度
toDegrees         动画结束时物件旋转的角度,可以大于360度
pivotX         动画相对于物件的X坐标的开始位置
pivotY         动画相对于物件的Y坐标的开始位置

2. 使用Animation的方式有两种,一种是在XML中定义动画,另一种是在Java代码中定义动画。

一)在XML中定义动画

示例一:将动画应用在View上

(1) 创建animation,新建res\anim\alpha.xml。

Xml代码

<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="1" android:toAlpha="0" android:duration="@android:integer/config_longAnimTime"/>



 

 

(2) 创建layout,新建res\layout\main.xml。

Xml代码

<?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:id="@+id/text01"android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /><Button android:id="@+id/button01"android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/alpha" /></LinearLayout>


 

(3) 创建Activity,AnimationActivity.java。通过AnimationUtils.loadAnimation加载动画,然后aView.startAnimation来运行动画。

Java代码

 

package com.example.android.apis.app;import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.animation.AnimationUtils;public class AnimationActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);findViewById(R.id.button01).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {findViewById(R.id.text01).startAnimation(AnimationUtils.loadAnimation(AnimationActivity.this,R.anim.alpha));}});}
}


 

 

(4) 运行应用,点击Alpha按钮,文本信息会出现渐变效果。

示例二:将动画应用在Activity上

Android官方示例,com.example.android.apis.app.Animation。在此只列出关键部分。

(1) animation xml文件。

res/anim/fade.xml
Xml代码
<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/accelerate_interpolator"android:fromAlpha="0.0" android:toAlpha="1.0"android:duration="@android:integer/config_longAnimTime" />


 

 

res/anim/hold.xml
Xml代码
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/accelerate_interpolator"android:fromXDelta="0" android:toXDelta="0"android:duration="@android:integer/config_longAnimTime" />


 

res/anim/zoom_enter.xml
Xml代码
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/decelerate_interpolator"><scale android:fromXScale="2.0" android:toXScale="1.0"android:fromYScale="2.0" android:toYScale="1.0"android:pivotX="50%p" android:pivotY="50%p"android:duration="@android:integer/config_mediumAnimTime" />
</set>


<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/decelerate_interpolator"><scale android:fromXScale="2.0" android:toXScale="1.0"android:fromYScale="2.0" android:toYScale="1.0"android:pivotX="50%p" android:pivotY="50%p"android:duration="@android:integer/config_mediumAnimTime" />
</set>

res/anim/zoom_exit.xml
Xml代码
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/decelerate_interpolator"android:zAdjustment="top"><scale android:fromXScale="1.0" android:toXScale=".5"android:fromYScale="1.0" android:toYScale=".5"android:pivotX="50%p" android:pivotY="50%p"android:duration="@android:integer/config_mediumAnimTime" /><alpha android:fromAlpha="1.0" android:toAlpha="0"android:duration="@android:integer/config_mediumAnimTime"/>
</set>


 

(2) 主要Activity 文件,com/example/android/apis/app/Animation.java。通过overridePendingTransition方法将自定义动画覆盖Activity之间跳转时默认的动画,
Java代码
package com.example.android.apis.app;import com.example.android.apis.R;
import com.example.android.apis.view.Controls1;import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class Animation extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation);Button button = (Button)findViewById(R.id.fade_animation);button.setOnClickListener(mFadeListener);button = (Button)findViewById(R.id.zoom_animation);button.setOnClickListener(mZoomListener);}private OnClickListener mFadeListener = new OnClickListener() {public void onClick(View v) {startActivity(new Intent(Animation.this, Controls1.class));overridePendingTransition(R.anim.fade, R.anim.hold);}};private OnClickListener mZoomListener = new OnClickListener() {public void onClick(View v) {startActivity(new Intent(Animation.this, Controls1.class));overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);}};
}


 

   

二)在Java代码中定义动画

示例一:

(1) layout文件同上文的res\layout\main.xml。

(2) 修改AnimationActivity.java代码。在代码里创建animation并设置属性。
Java代码

com.example.android.apis.app;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;public class AnimationActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);findViewById(R.id.button01).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 创建rotate animationAnimation anim = new RotateAnimation(0, 360);anim.setDuration(5000);anim.setInterpolator(new AccelerateDecelerateInterpolator());findViewById(R.id.text01).startAnimation(anim);}});}
}


 

二、逐帧动画

这篇关于Android 2.2 API demos --- animation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843544

相关文章

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D