- 浏览: 67496 次
- 性别:
- 来自: Mercury
最新评论
在代码中使用Animations可以很方便的调试、运行,但是代码的可重用性差,重复代码多。同样可以在xml文件中配置Animations,这样做可维护性变高了,只不过不容易进行调试。
一、在xml中使用Animations步骤
1.在res文件夹下建立一个anim文件夹;
2.创建xml文件,并首先加入set标签,更改标签如下:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> </set>
3.在该标签当中加入rotate,alpha,scale或者translate标签;
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="500" android:duration="500"/>
4.在代码当中使用AnimationUtils当中装载xml文件,并生成Animation对象。因为Animation是AnimationSet的子类,所以向上转型,用Animation对象接收。
//使用AnimationUtils装载动画配置文件 Animation animation = AnimationUtils .loadAnimation(AnimationActivity.this, R.anim.alpha); //启动动画 image.startAnimation(animation);
二、完整代码
目录结构:
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/rotateButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="旋转"/> <Button android:id="@+id/scaleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="缩放"/> <Button android:id="@+id/alphaButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="淡入淡出"/> <Button android:id="@+id/translateButton" 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" android:src="@drawable/image"/> </LinearLayout> </LinearLayout>
Alpha.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- fromAlpha和toAlpha是起始透明度和结束时透明度 --> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="500" android:duration="500"/> </set>
Rotate.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- fromDegrees:开始的角度 toDegrees:结束的角度,+表示是正的 pivotX:用于设置旋转时的x轴坐标 例 1)当值为"50",表示使用绝对位置定位 2)当值为"50%",表示使用相对于控件本身定位 3)当值为"50%p",表示使用相对于控件的父控件定位 pivotY:用于设置旋转时的y轴坐标 --> <rotate android:fromDegrees="0" android:toDegrees="+360" android:pivotX="50%" android:pivotY="50%" android:duration="1000"/> </set>
Translate.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- 始x轴坐标 止x轴坐标 始y轴坐标 止y轴坐标 --> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="100%" android:duration="2000"/> </set>
Scale.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- 起始x轴坐标 止x轴坐标 始y轴坐标 止y轴坐标 轴的坐标 轴的坐标 --> <scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="1000"/> </set>
AnimationActivity.java
package com.android.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
public class AnimationActivity extends Activity {
private Button rotateButton = null;
private Button scaleButton = null;
private Button alphaButton = null;
private Button translateButton = null;
private ImageView image = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rotateButton = (Button)findViewById(R.id.rotateButton);
scaleButton = (Button)findViewById(R.id.scaleButton);
alphaButton = (Button)findViewById(R.id.alphaButton);
translateButton = (Button)findViewById(R.id.translateButton);
image = (ImageView)findViewById(R.id.image);
rotateButton.setOnClickListener(new RotateButtonListener());
scaleButton.setOnClickListener(new ScaleButtonListener());
alphaButton.setOnClickListener(new AlphaButtonListener());
translateButton.setOnClickListener(
TranslateButtonListener());
}
class AlphaButtonListener implements OnClickListener{
public void onClick(View v) {
//使用AnimationUtils装载动画配置文件
Animation animation = AnimationUtils
.loadAnimation(AnimationActivity.this, R.anim.alpha);
//启动动画
image.startAnimation(animation);
}
}
class RotateButtonListener implements OnClickListener{
public void onClick(View v) {
Animation animation = AnimationUtils
.loadAnimation(AnimationActivity.this, R.anim.rotate);
image.startAnimation(animation);
}
}
class ScaleButtonListener implements OnClickListener{
public void onClick(View v) {
Animation animation = AnimationUtils
.loadAnimation(AnimationActivity.this, R.anim.scale);
image.startAnimation(animation);
}
}
class TranslateButtonListener implements OnClickListener{
public void onClick(View v) {
Animation animation = AnimationUtils
.loadAnimation(AnimationActivity.this, R.anim.translate);
image.startAnimation(animation);
}
}
}
运行结果:
发表评论
文章已被作者锁定,不允许评论。
-
Android40_Dialog
2011-11-14 00:11 2994Dialog是Android常用的对话框控件。AlertDia ... -
Android39_Clock和TimePicker
2011-11-14 00:08 2357一、AnalogClock和DigitalClock ... -
Android38_ImageView和Gallery
2011-11-14 00:07 3610一、ImageView使用方法 ImageVi ... -
Android37_JSON数据解析
2011-11-08 00:14 2345一、JSON介绍 JSON(JavaSc ... -
Android36_Animations使用(四)
2011-11-08 00:14 3417一、LayoutAnimationsContrlller ... -
Android35_Animations使用(三)
2011-11-08 00:13 2650一、AnimationSet的具体使用方法 ... -
Android33_Animations使用(一)
2011-11-08 00:12 2283一、Animations介绍 Anima ... -
Android31_AppWidget使用(二)
2011-11-05 00:09 2504一、PendingIntent介绍 PendingIn ... -
Android30_AppWidget使用(一)
2011-11-05 00:08 2260一、App Widget定义 App ... -
Android32_Notification用法
2011-11-05 00:09 1885Android系统的状态栏(Status Bar)中有一 ... -
Android29_SeekBar和RatingBar
2011-11-02 23:21 2117一、使用SeekBar步骤: SeekB ... -
Android28_ExpandableListActivity
2011-11-02 23:21 1484ExpandableListActivity就是可扩展的 ... -
Android27_AutoCompleteTextView
2011-11-02 23:21 1088一、创建AutoCompleteTextView ... -
Android26_DatePicker
2011-11-02 23:20 1777一、DatePicker和DatePickerDialo ... -
Android25_Spinner使用方法
2011-11-02 23:20 2813一、创建Spinner的步骤 1.在布局 ... -
Android24_Service初步
2011-10-18 22:27 1005一、Service概念 ... -
Android23_Socket编程
2011-10-18 22:19 1506一、什么是Socket Socket是基 ... -
Android22_WIFI网络操作
2011-10-18 22:12 1690一、什么是WIFI WIFI就是一种无线 ... -
Android21_广播机制(二)
2011-10-18 22:00 1003一、注册BroadcastReceiver的方法 ... -
Android20_广播机制(一)
2011-10-18 21:48 1076一、Android广播机制介绍 Android:操作系统 ...
相关推荐
Android-android_additive_animations.zip,Android附加动画!,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
它提供了屏幕使用时间统计、应用使用限制、睡前模式等工具,帮助用户建立健康的数字生活习惯。 3. ** Adaptive Battery 和 Adaptive Brightness**:Android 9.0引入了Adaptive Battery技术,通过机器学习预测用户...
在此处获得此库的良好概述: : 一体化要在您的项目中使用AdditiveAnimator ,请在build.gradle添加以下几行: dependencies { compile 'at.wirecube:additive_animations:1.9.0'}...repositories { jcenter()}快速...
6. **动画(Animations)**:Android提供多种动画类型,如属性动画(Property Animation)、视图动画(View Animation)和过渡动画(Transition Animation),可用于创建吸引人的用户交互。 7. **自定义视图...
在Android开发中,动画是提升用户体验的关键因素之一。"Androidg_java_android_acceptxpj_"这个主题聚焦...Material-Animations-master项目应该提供了丰富的示例代码和实践指导,是学习和提升Android动画技能的好资源。
本教程将聚焦于“android_animations”项目,这个项目主要关注如何使用XML文件来创建和管理Android应用程序中的动画。 首先,让我们理解XML在Android动画中的作用。XML(eXtensible Markup Language)是一种用于...
在Android中,可以使用XML文件定义颜色资源,方便在整个应用中复用。同时,通过设置主题(Theme),可以全局改变应用的视觉样式,如字体、背景色、控件样式等。 5. **响应式布局(Responsive Layouts)**: 使用...
6. **动画(Animations)**:Android支持多种类型的动画,如属性动画(Property Animation)、视图动画(View Animation)等,为用户界面增添动态效果,提高用户体验。 7. **触摸反馈(Touch Feedback)**:通过...
通过学习和使用"Android-animations",开发者不仅可以提高应用的视觉吸引力,还能确保应用在不同版本的Android系统上保持一致的用户体验。此外,熟悉"nineoldandroids"也有助于理解和使用Android的原生动画系统,这...
7. **动画(Animations)**:Android支持属性动画(Property Animation)、视图动画(View Animation)和过渡动画(Transition Animation),用于增强用户体验。例如,滑动切换效果、淡入淡出等。 8. **对话框...
### Android Animations动画使用详解 #### 一、概述 Android平台提供了丰富的动画支持来增强用户界面的交互体验。本文档将详细介绍Android中的四种基本动画类型:`Alpha`(透明度变化)、`Scale`(缩放变化)、`...
11_Animations01、12_Animations02、14_Animations04、15_Animations05和17_Animations07这些章节,会深入讲解如何创建和使用这些动画,以及如何实现复杂的过渡效果,提升用户体验。 2. **AppWidget**:AppWidget是...
Animations Beautiful animations from AOSP 依賴 Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 查詢最新...
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 ...
本文实例讲述了Android开发之Animations动画用法。分享给大家供大家参考,具体如下: 一、动画类型 Android的animation由四种类型组成:alpha、scale、translate、rotate XML配置文件中 alpha 渐变透明度...
Material-Animations是专门为Android平台设计的一款开源项目,它致力于实现Material Design规范中的各种动画效果,使得开发者可以轻松地在自己的应用中添加生动、流畅的过渡动画。 项目的核心目标是提供Activity...
- 掌握Android 3.0中各种动画框架的使用方法。 - 学会如何设计和实现复杂的动画效果。 - 了解如何优化动画性能,避免影响用户体验。 - 能够独立完成包含高级动画效果的应用开发项目。 #### 六、结语 《Android 3.0...
Android 开发学习过程中,有两处重要的代码资料来源,一是 Android Training 及其 Sample,二是 GitHub。 Github 上已经有各种高质量的「集锦」,它们的工作是按某种主题分类整理高质量的开源项目,给出链接、总结优...
【标题】"EventsCalendar_kotlinandroid_kotlin_" 指示这是一个使用Kotlin语言开发的Android日历应用,重点在于其包含多种动画效果。在Android应用开发中,Kotlin已经逐渐成为主流语言,以其简洁、安全和面向现代...