- 浏览: 68972 次
- 性别:
- 来自: 上海
最新评论
-
kentihcai:
我这里的下载不了啊
android文件下载进度条实现 -
rabbitinhere:
程序确实是有点问题啊~~~ 2楼正解
android文件下载进度条实现 -
ssy341:
Datatables交流群
http://bbs.sailit ...
jQuery datatables使用 -
zjxkeven:
读取文件字节流时。修改成这样就没有问题了
while ((to ...
android文件下载进度条实现 -
zjxkeven:
我请求一个zip文件,后台下载文件有问题。费了好大劲才查出来。 ...
android文件下载进度条实现
在Android系统中系统了两种动画实现方式:一种是Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种是Frame动画,这是一种传统的动画方法,通过顺序播放排列好的图片来实现,类似电影。
Tween动画类位于android.view.animation包中,该包中包含了一些常用的动画实现类。
Animation:动画抽象类,其它几个实现类继承该类。
ScaleAnimation:控制尺寸大小变化的动画类。
AlphaAnimation:控制透明度变化的动画类。
TranslateAnimation:控制位置变化的动画类。
AnimationSet:定义动画属性集合类。
AnimationUtils:动画工具类。
Tween动画有四个主要的实现,下面分别说明下: 1、AlphaAnimation:渐变动画,主要控制透明度变化动画类,常使用AlphaAnimation(float fromAlpha, float toAlpha)来构造; fromAlpha:动画开始时的透明度(取值范围为0.0到1.0); toAlpha:动画结束时的透明度; 2、ScaleAnimation:主要控制尺度变化的动画类,常使用ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)来构造; fromX:动画开始X坐标上的伸缩尺度; toX:动画结束X坐标上的伸缩尺度; fromY:动画开始Y坐标上的伸缩尺度; toY:动画结束Y坐标上的伸缩尺度; pivotXType:X坐标上的伸缩模式,取值有:Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_PARENT; pivotXValue:X坐标上的伸缩值; pivotYType:Y坐标上的伸缩模式,取值有:Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_PARENT; pivotYValue:Y坐标上的伸缩值; 3、TranslateAnimation:主要控制位置变换的动画实现类,常使用TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)来构造; fromXDelta:动画开始的X坐标; toXDelta:动画结束的X坐标; fromYDelta:动画开始的Y坐标; toYDelta:动画结束的Y坐标; 4、RotateAnimation:主要控制旋转的动画实现类,常使用RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)来构造; fromDegrees:旋转开始角度; toDegrees:旋转结束角度; pivotXType, pivotXValue, pivotYType, pivotYValue与尺度变化动画ScaleAnimation类似;
Tween动画的实现方式有两种:一种是直接通过硬编码的方式在程序代码中实现;另一种是在配置文件中定义(Android系统推荐使用),这种方式可扩展性较好。
首先,看看硬编码方式的实现:
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="200px" android:src="@drawable/football_match" android:layout_gravity="center_horizontal"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/button01" android:text="Scale" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"/> <Button android:id="@+id/button02" android:text="Alpha" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"/> <Button android:id="@+id/button03" android:text="Translate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"/> <Button android:id="@+id/button04" android:text="Rotate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"/> </LinearLayout> </LinearLayout>
Activity.java
public class AnimationActivity extends Activity { private ImageView imageView; private Button button01,button02,button03,button04; private Animation animation; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageView = (ImageView) this.findViewById(R.id.imageView); button01 =(Button) this.findViewById(R.id.button01); button02 = (Button) this.findViewById(R.id.button02); button03 = (Button) this.findViewById(R.id.button03); button04 = (Button) this.findViewById(R.id.button04); button01.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { animation = new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); //设置动画持续时间 animation.setDuration(3000); imageView.startAnimation(animation); } }); button02.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { animation = new AlphaAnimation(0.1f, 1.0f); animation.setDuration(3000); imageView.startAnimation(animation); } }); button03.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { animation = new TranslateAnimation(10, 100, 10, 100); animation.setDuration(3000); imageView.startAnimation(animation); } }); button04.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { animation = new RotateAnimation(0f,+360f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); animation.setDuration(3000); imageView.startAnimation(animation); } }); } }
XML方式实现:
在工程的res\anim\目录下创建各种动画的xml配置文件。
alpha.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="1.0" android:toAlpha="0.2" android:duration="5000"> </alpha> </set>
rotate.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:fromDegrees="0" android:toDegrees="-540" android:pivotX="50%" android:pivotY="50%" android:duration="5000"> </rotate> </set>
scale.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:duration="5000"> </scale> </set>
translate.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="10" android:toXDelta="100" android:fromYDelta="10" android:toYDelta="100" android:duration="5000"> </translate> </set>
XActivity.java
public class XAnimationActivity extends Activity{ private ImageView imageView; private Button button01,button02,button03,button04; private Animation animation; /* (non-Javadoc) * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); imageView = (ImageView) this.findViewById(R.id.imageView); button01 =(Button) this.findViewById(R.id.button01); button02 = (Button) this.findViewById(R.id.button02); button03 = (Button) this.findViewById(R.id.button03); button04 = (Button) this.findViewById(R.id.button04); button01.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { animation = AnimationUtils.loadAnimation(XAnimationActivity.this, R.anim.scale); //设置动画持续时间 animation.setDuration(3000); imageView.startAnimation(animation); } }); button02.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { animation = AnimationUtils.loadAnimation(XAnimationActivity.this, R.anim.alpha); animation.setDuration(3000); imageView.startAnimation(animation); } }); button03.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { animation = AnimationUtils.loadAnimation(XAnimationActivity.this, R.anim.translate); animation.setDuration(3000); imageView.startAnimation(animation); } }); button04.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { animation = AnimationUtils.loadAnimation(XAnimationActivity.this, R.anim.rotate); animation.setDuration(3000); imageView.startAnimation(animation); } }); } }
OK,以上就是两种动画的实现方法,运行效果图:
Scale效果
Alpha效果
Translate效果
Rotate效果
发表评论
-
android文件下载进度条实现
2011-08-24 17:32 10920做了个小例子,是关于android文件下载过程中进度条的实现, ... -
系统设置更改时间onConfigurationChanged
2011-08-13 12:15 1297在前一个例子中我们看到了屏幕方向的更改,事实上,当屏幕方向改变 ... -
android动态更改屏幕方向
2011-08-13 11:59 6659在androd中要通过程序改变屏幕显示的方向,必须覆盖setR ... -
Android - LayoutInflater 的使用
2011-08-05 09:10 973LayoutInflater is used to insta ... -
使用Shader渲染图形
2011-07-29 17:29 1548public class ShaderActivity ext ... -
SQLite
2011-07-29 10:16 1975Android中通过SQLite数据库引擎来实现结构化数据 ... -
(转)android listview滑动时加载(动态加载)
2011-07-28 16:18 1821如果adapter中的数据量很大的时候,在加载listv ... -
Android-Intent和PendingIntent的关系
2011-07-28 16:03 1030本文转自:http://yinter.iteye.com/bl ... -
Broadcast Receiver处理广播事件
2011-07-28 13:56 2594本实例介绍自定义Broadcast Receiver和系统 ... -
Service实例
2011-07-28 10:04 961下面通过一个实例演示如何创建、启动、停止及绑定一个Servic ... -
菜单Menu
2011-07-27 17:07 940本实例主要介绍了android中的一些菜单,Android系 ... -
ListView组件与SimpleAdapter
2011-07-27 16:34 2006记录两个ListView的简单小例子.其中使用到 了Simpl ... -
WebView与ProgressDialog结合
2011-07-27 16:18 3188WebView组件支持直接加载网页,可以将其视为一个浏览器,要 ...
相关推荐
在Android开发中,动画效果是提升用户体验的关键因素之一。渐变动画是Android动画体系中的一种基本类型,它可以为用户界面带来生动和动态的感觉。本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)...
首先,让我们了解Android中的基本动画类型。Android支持两种主要的动画机制:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画用于改变视图的位置、大小、透明度等属性,它通过在一段时间内平滑地...
在Android开发中,动画效果是提升用户体验的重要手段。然而,有时候在实现动画过程中,我们可能会遇到这样一个问题:当一个View执行动画并移出其父布局时,它会被父布局自动裁剪,导致动画效果不完整。这个问题在...
在Android开发中,动画是提升用户体验的关键因素,它能让应用变得更加生动、有趣。这份"Android动画测试源码"提供了一种深入理解Android动画机制的方式,通过实际的代码示例进行学习和测试。以下是对相关知识点的...
本文将深入探讨在Android中如何创建和使用各种动画,特别是属性动画和补间动画,这些都是Android动画的基础和核心。 首先,我们来理解补间动画(Tween Animation)。补间动画是在两个关键帧之间平滑地改变对象的...
在Android开发中,动画效果是提升用户体验和应用视觉吸引力的关键元素。本文将深入探讨"Android动画效果大全",包括各种类型的动画以及如何基于这些技术实现炫酷的特效。 首先,Android提供两种主要的动画机制:帧...
在Android中,所有的动画都可以通过`Animation`类或者其子类来创建。`Animation`类提供了一些基本属性,如动画的持续时间、重复次数、是否反向播放等。开发者可以通过设置这些属性来定制动画效果。 接着,`BAnim_v7...
- 对于复杂动画,可以使用硬件加速来提高性能,设置`android:hardwareAccelerated="true"`在`<application>`标签中。 总结,Android动画原理涵盖了视图动画和属性动画,它们各自有其特点和适用场景。通过...
本文将深入探讨在Android中实现的各种动画类型,包括渐变动画、旋转动画、位移动画、缩放动画、混合动画、布局动画以及属性动画。这些知识点都是Android开发者,尤其是新手,必须掌握的基础技能。 首先,我们来看...
本文将深入探讨Android中的两种视图动画——补间动画和帧动画,以及更为强大的属性动画的使用细节。 **补间动画(Tween Animation)** 补间动画是Android早期引入的一种简单动画形式,主要用于改变View的基本属性...
在Android中,动画可以分为两种主要类型:补间动画(Tween Animation)和帧动画(Frame Animation)。在这个项目中,我们可能会用到补间动画,因为它更适合模拟连续的平滑动作,比如小人的奔跑。 补间动画是通过...
在Android开发中,动画是提升用户体验、增加应用趣味性的重要元素。这个名为"数百种Android动画效果源码"的项目,旨在提供一个丰富的动画库,帮助开发者快速理解和应用各种动画效果。下面将详细介绍这个项目中可能...
在Android中,可以通过`AnimationDrawable`实现帧动画,适用于简单的2D动画场景。 4. **过渡动画(Transition Animation)** 自Android Lollipop(API level 21)起,过渡动画被引入,主要用于Activity和Fragment...
`RotateAnimation`是Android中实现旋转效果的专用动画类。它可以根据指定的初始角度和最终角度,使视图进行旋转。 1. 创建RotateAnimation 创建`RotateAnimation`对象,需要提供起始角度、结束角度、旋转中心X坐标...
在Android开发中,动画是提升用户体验的关键因素,它能让应用变得更加生动、有趣。这篇"Android动画学习总结---下"着重探讨了Android属性动画(Property Animation)的使用方法。属性动画系统是Android 3.0(API ...
在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画用于改变视图的位置、大小、透明度等属性,而帧动画则是通过显示一系列静态图像来创建连续运动的效果。 1. ...
Android 平台提供了一套完整的...本文是第一部分原理篇,主要分析 Tween 动画的实现原理, 最后简单介绍在 Android 中如何通过播放 Gif 文件来实现动画。第二部分实例篇将在原理篇的基础上,向您展示一个动画实例的实现
这篇博客主要探讨了Android中的动画技术,并提供了相关资源,链接为。 Android动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。视图动画是早期Android版本中的动画系统,主要...
在Android中,我们可以使用AnimationDrawable资源来实现帧动画。将多张图片放入一个动画列表,通过设置每帧的持续时间,系统会自动按照顺序播放这些帧,形成连续的动画效果。 最后,我们讨论补间动画(Tween ...