- 浏览: 67353 次
- 性别:
- 来自: Mercury
最新评论
一、Animations介绍
Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。
二、Animations的分类
Animations从总体上可以分为两大类:
1.Tweened Animations:该类Animations提供了旋转、移动、伸展和淡出等效果。Alpha——淡入淡出,Scale——缩放效果,Rotate——旋转,Translate——移动效果。
2.Frame-by-frame Animations:这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。
三、Animations的使用方法(代码中使用)
对象之间的关系:
使用TweenedAnimations的步骤:
1.创建一个AnimationSet对象(Animation子类);
2.增加需要创建相应的Animation对象;
3.更加项目的需求,为Animation对象设置相应的数据;
4.将Animatin对象添加到AnimationSet对象当中;
5.使用控件对象开始执行AnimationSet。
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>
AnimationsActivity.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.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.RotateAnimation; import android.view.animation.ScaleAnimation; import android.view.animation.TranslateAnimation; import android.widget.Button; import android.widget.ImageView; public class AnimationsActivity 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( new TranslateButtonListener()); } class AlphaButtonListener implements OnClickListener{ public void onClick(View v) { //创建一个AnimationSet对象,参数为Boolean型, //true表示使用Animation的interpolator,false则是使用自己的 AnimationSet animationSet = new AnimationSet(true); //创建一个AlphaAnimation对象,参数从完全的透明度,到完全的不透明 AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); //设置动画执行的时间 alphaAnimation.setDuration(500); //将alphaAnimation对象添加到AnimationSet当中 animationSet.addAnimation(alphaAnimation); //使用ImageView的startAnimation方法执行动画 image.startAnimation(animationSet); } } class RotateButtonListener implements OnClickListener{ public void onClick(View v) { AnimationSet animationSet = new AnimationSet(true); //参数1:从哪个旋转角度开始 //参数2:转到什么角度 //后4个参数用于设置围绕着旋转的圆的圆心在哪里 //参数3:确定x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标 //参数4:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴 //参数5:确定y轴坐标的类型 //参数6:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴 RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f); rotateAnimation.setDuration(1000); animationSet.addAnimation(rotateAnimation); image.startAnimation(animationSet); } } class ScaleButtonListener implements OnClickListener{ public void onClick(View v) { AnimationSet animationSet = new AnimationSet(true); //参数1:x轴的初始值 //参数2:x轴收缩后的值 //参数3:y轴的初始值 //参数4:y轴收缩后的值 //参数5:确定x轴坐标的类型 //参数6:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴 //参数7:确定y轴坐标的类型 //参数8:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴 ScaleAnimation scaleAnimation = new ScaleAnimation( 0, 0.1f,0,0.1f, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f); scaleAnimation.setDuration(1000); animationSet.addAnimation(scaleAnimation); image.startAnimation(animationSet); } } class TranslateButtonListener implements OnClickListener{ public void onClick(View v) { AnimationSet animationSet = new AnimationSet(true); //参数1~2:x轴的开始位置 //参数3~4:y轴的开始位置 //参数5~6:x轴的结束位置 //参数7~8:x轴的结束位置 TranslateAnimation translateAnimation = new TranslateAnimation( Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,0.5f); translateAnimation.setDuration(1000); animationSet.addAnimation(translateAnimation); image.startAnimation(animationSet); } } }
运行结果:
发表评论
文章已被作者锁定,不允许评论。
-
Android40_Dialog
2011-11-14 00:11 2991Dialog是Android常用的对话框控件。AlertDia ... -
Android39_Clock和TimePicker
2011-11-14 00:08 2351一、AnalogClock和DigitalClock ... -
Android38_ImageView和Gallery
2011-11-14 00:07 3607一、ImageView使用方法 ImageVi ... -
Android37_JSON数据解析
2011-11-08 00:14 2342一、JSON介绍 JSON(JavaSc ... -
Android36_Animations使用(四)
2011-11-08 00:14 3413一、LayoutAnimationsContrlller ... -
Android35_Animations使用(三)
2011-11-08 00:13 2642一、AnimationSet的具体使用方法 ... -
Android34_Animations使用(二)
2011-11-08 00:12 1949在代码中使用Animations可以很方便的调试、运行 ... -
Android31_AppWidget使用(二)
2011-11-05 00:09 2497一、PendingIntent介绍 PendingIn ... -
Android30_AppWidget使用(一)
2011-11-05 00:08 2257一、App Widget定义 App ... -
Android32_Notification用法
2011-11-05 00:09 1880Android系统的状态栏(Status Bar)中有一 ... -
Android29_SeekBar和RatingBar
2011-11-02 23:21 2111一、使用SeekBar步骤: SeekB ... -
Android28_ExpandableListActivity
2011-11-02 23:21 1481ExpandableListActivity就是可扩展的 ... -
Android27_AutoCompleteTextView
2011-11-02 23:21 1080一、创建AutoCompleteTextView ... -
Android26_DatePicker
2011-11-02 23:20 1775一、DatePicker和DatePickerDialo ... -
Android25_Spinner使用方法
2011-11-02 23:20 2810一、创建Spinner的步骤 1.在布局 ... -
Android24_Service初步
2011-10-18 22:27 1001一、Service概念 ... -
Android23_Socket编程
2011-10-18 22:19 1503一、什么是Socket Socket是基 ... -
Android22_WIFI网络操作
2011-10-18 22:12 1687一、什么是WIFI WIFI就是一种无线 ... -
Android21_广播机制(二)
2011-10-18 22:00 998一、注册BroadcastReceiver的方法 ... -
Android20_广播机制(一)
2011-10-18 21:48 1074一、Android广播机制介绍 Android:操作系统 ...
相关推荐
Android-android_additive_animations.zip,Android附加动画!,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
"android-sdk-sources-android-28.rar"是一个包含Android 28版本源码的压缩包,对于深入理解Android系统的运行机制、优化应用性能以及进行定制化开发具有重要意义。 Android 28,对应的是Android 9.0 Pie,这是一个...
在Android开发中,动画是提升用户体验的关键因素之一。"Androidg_java_android_acceptxpj_"这个主题聚焦于Android应用中的各种动画交互效果,包括Activity和Fragment的转场动画、共享元素动画以及Circular Reveal...
在此处获得此库的良好概述: : 一体化要在您的项目中使用AdditiveAnimator ,请在build.gradle添加以下几行: dependencies { compile 'at.wirecube:additive_animations:1.9.0'}...repositories { jcenter()}快速...
本资源“android-UI.zip”似乎提供了一个全面的Android UI设计集合,特别是针对校园导航的应用场景。以下是关于Android UI设计的一些关键知识点: 1. **布局(Layouts)**:Android提供多种布局管理器,如线性布局...
本教程将聚焦于“android_animations”项目,这个项目主要关注如何使用XML文件来创建和管理Android应用程序中的动画。 首先,让我们理解XML在Android动画中的作用。XML(eXtensible Markup Language)是一种用于...
在Android应用开发中,UI(用户界面)设计是至关重要的,因为它直接影响到用户的体验和对应用的第一印象。本文档“Android-UI.rar”专注于Android平台的UI设计,旨在帮助开发者和设计师创建美观、易用且功能强大的...
"Android-animations"是一个专为Android系统设计的动画库,它包含了丰富的动画效果,能够帮助开发者轻松实现各种复杂的界面转换和元素交互。其中,"nineoldandroids"是一个非常关键的部分,它是专门为兼容Android ...
这份“android-UI.rar”压缩包提供了全面的Android界面开发指南,帮助开发者从基础到深入地掌握这一技术。下面将详细阐述Android UI开发中的关键知识点。 1. **布局管理器(Layout Managers)**:Android UI设计的...
7. **动画(Animations)**:Android支持属性动画(Property Animation)、视图动画(View Animation)和过渡动画(Transition Animation),用于增强用户体验。例如,滑动切换效果、淡入淡出等。 8. **对话框...
### Android Animations动画使用详解 #### 一、概述 Android平台提供了丰富的动画支持来增强用户界面的交互体验。本文档将详细介绍Android中的四种基本动画类型:`Alpha`(透明度变化)、`Scale`(缩放变化)、`...
01_FirstApp 02_MVC 03_ActivityLifecycle 05_SecondActivity 06_AndroidVersions 07_UIFragments 08_LayoutsAndWidgets 09_RecyclerView 10_FragmentArguments 11_ViewPager ...33_MaterialDesignTopics
Animations Beautiful animations from AOSP 依賴 Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 查詢最新...
11_Animations01、12_Animations02、14_Animations04、15_Animations05和17_Animations07这些章节,会深入讲解如何创建和使用这些动画,以及如何实现复杂的过渡效果,提升用户体验。 2. **AppWidget**:AppWidget是...
Material-Animations是专门为Android平台设计的一款开源项目,它致力于实现Material Design规范中的各种动画效果,使得开发者可以轻松地在自己的应用中添加生动、流畅的过渡动画。 项目的核心目标是提供Activity...
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 渐变透明度...
《Android 3.0 Animations – 初学者指南》是一本专为Android开发者编写的书籍,主要聚焦于如何通过动画效果增强应用程序的用户体验。本书由Alex Shaw撰写,并由Packt Publishing在2011年首次出版。 #### 二、作者...
【标题】"EventsCalendar_kotlinandroid_kotlin_" 指示这是一个使用Kotlin语言开发的Android日历应用,重点在于其包含多种动画效果。在Android应用开发中,Kotlin已经逐渐成为主流语言,以其简洁、安全和面向现代...