- 浏览: 582057 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
Android动画详细探究
Animation是一个用于View,Surfaces和其它对象实现动画效果的抽象类,其中常用的类是TranslateAnimation用于控制位置的改变
一下列出一些重要的属性和方法
Xml属性
android:duration:运行动画的时间
android:interpolator:定义用于平滑动画运动的时间内插
android:repeatCount:定义动画重复的时间
方法:
set:RepeatCount(int ):定义动画重复的时间
setRepeatMode(int):通过设置重复时间定义动画的行为
setStartOffset(long):以毫秒为单位的动画运行前的延迟,一旦开始时间就达到了
Cancel():取消动画
hasStarted():判断动画是否已在运行
initialize(int width, int height, int parentWidth, int parentHeight):初始化动画
reset():重置动画
Start()启动动画
其中还有一些常量
RESTART:重新运行
INFINITE:永无终止地运行
将动画用于指定的控件,所有继承自View的控件都有startAnimation(Animation)方法,通过调用此方法来应用动画于控件
AnimationUtils类介绍
为应用动画提供了通用的的方法,它有一个很重要的方法loadAnimation(Context,Animation)用于加载Animation的实例。
下面是一个实例 源码下载
Animationpage.xml是布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dip" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/pw" android:background="@drawable/a" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dip" /> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="26sp" android:text="震荡" /> <ViewFlipper android:id="@+id/flipper" android:layout_width="match_parent" android:layout_height="wrap_content" android:flipInterval="2000" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="26sp" android:text="吴建强"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="26sp" android:text="李秀婷"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="26sp" android:text="张美静"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="26sp" android:text="吴美音"/> </ViewFlipper> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dip" android:text="请选择你喜欢的人" /> <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/target" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="26sp" android:text="java语言"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dip" android:layout_marginBottom="5dip" android:text="C#语言" /> <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> Animlayout.xml是动画文件 <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:toXDelta="10" android:duration="1000" android:interpolator="@anim/cycle_7" /> 。。。
主程序
package wjq.WidgetDemo; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.Transformation; import android.view.animation.TranslateAnimation; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.ViewFlipper; import android.widget.AdapterView.OnItemSelectedListener; /** * 动画Animation示例 * @author 记忆的永恒 * */ public class AnimationDemo extends Activity implements OnClickListener, OnItemSelectedListener { private View v; private String[] mStrings = { "向上", "向右", "穿越", "旋转" }; private static final String[] INTERPOLATORS = { "加速", "Decelerate", "减速", "左右", "Overshoot", "Anticipate/Overshoot", "弹回" }; private ViewFlipper mFlipper; private Spinner spinner; private Spinner spinner1; private ArrayAdapter<String> aa; private ArrayAdapter<String> aa1; /* * (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.animationpage); v = findViewById(R.id.login); v.setOnClickListener(this); mFlipper = (ViewFlipper) findViewById(R.id.flipper); // 反转 mFlipper.startFlipping(); spinner = (Spinner) findViewById(R.id.spinner); aa = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mStrings); aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(aa); spinner.setOnItemSelectedListener(this); spinner1 = (Spinner) findViewById(R.id.spinner1); aa1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, INTERPOLATORS); aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner1.setAdapter(aa1); spinner1.setOnItemSelectedListener(this); } @Override public void onClick(View v) { Animation shake = AnimationUtils.loadAnimation(this, R.anim.animlayout); findViewById(R.id.pw).startAnimation(shake); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getAdapter()==aa) { switch (position) { case 0: mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_up_in)); mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_up_out)); break; case 1: mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in)); mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out)); break; case 2: mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in)); mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out)); break; default: mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.hyperspace_in)); mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.hyperspace_out)); break; } } else { final View target = findViewById(R.id.target); final View targetParent = (View) target.getParent(); Animation anm = new TranslateAnimation(0.0f, targetParent .getWidth() - target.getWidth() - targetParent.getPaddingLeft() - targetParent.getPaddingRight(), 0.0f, 0.0f); anm.setDuration(1000); anm.setStartOffset(300); anm.setRepeatMode(Animation.RESTART); anm.setRepeatCount(Animation.INFINITE); switch (position) { case 0: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.accelerate_interpolator)); break; case 1: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.decelerate_interpolator)); break; case 2: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.accelerate_decelerate_interpolator)); break; case 3: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.anticipate_interpolator)); break; case 4: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.overshoot_interpolator)); break; case 5: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.anticipate_overshoot_interpolator)); break; case 6: anm.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.anim.bounce_interpolator)); break; } target.startAnimation(anm); } } @Override public void onNothingSelected(AdapterView parent) { // TODO Auto-generated method stub } }
发表评论
-
Android 菜单(OptionMenu)大全 建立你自己的菜单
2011-04-29 12:09 1000Android 菜单(OptionMenu)大全 建立你自己 ... -
Android学习点点滴滴之获取系统可用内存
2011-04-29 12:08 969Android学习点点滴滴之获取系统可用内存 ... -
Android学习点点滴滴之获取正在运行的进程
2011-04-29 12:07 1064Android学习点点滴滴之获取正在运行的进程 ... -
Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
2011-04-29 12:07 1229Android 应用程序窗体显示状态操作(requestWi ... -
Android游戏开发教程汇总
2011-04-29 12:06 1104Android游戏开发教程汇总 把最近搜集到 ... -
Android 对话框(Dialog)大全 建立你自己的对话框
2011-04-29 12:06 870Android 对话框(Dialog)大全 建立你自己的对话框 ... -
Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)
2011-04-29 12:05 930Android资源总结(开发工具/环境搭建/教程/论坛/博客 ... -
android Toast大全(五种情形)建立属于你自己的Toast
2011-04-29 12:04 823android Toast大全(五种情形)建立属于你自己的T ... -
通过创建一个位图的XY Chart来学习Android绘图类Rect,Paint,Bitmap,Canvas(附源码)
2011-04-29 12:03 1827通过创建一个位图的XY Chart来学习Android绘图类 ... -
Android2.3操作系统即将发布,亮点解读
2011-04-29 12:02 1055Android2.3操作系统即将发布,亮点解读 ... -
Android之Bundle传递数据详解与实例及Bundle与SharedPreferences的区别
2011-04-29 12:02 1271Android之Bundle传递数据详解与实例及Bundle ... -
Android开源项目源码下载(不断更新中)
2011-04-29 12:01 5813Android开源项目源码下 ... -
android控件之VideoView建立自己的播放器
2011-04-29 12:01 1173android控件之VideoView建立自己的播放器 ... -
Android控件之ZoomButton缩放按钮
2011-04-29 12:00 1123Android控件之ZoomButton缩放按钮 ... -
Android控件之ZoomControls缩放控件
2011-04-29 12:00 1341Android控件之ZoomControls缩放控件 ... -
Android简单数据存储类SharedPreferences详解及实例(通过“记住密码”功能学习SharedPreferences)
2011-04-29 11:58 1169Android简单数据存储类SharedPreference ... -
Android布局控件之LinearLayout详解
2011-04-29 11:58 1371Android布局控件之LinearLa ... -
Android控件之SlidingDrawer(滑动式抽屉)详解与实例
2011-04-29 11:56 1329Android控件之SlidingDrawer ... -
转Android系统架构
2011-04-29 11:55 901转Android系统架构 Android的系统 ... -
Android学习资料分享(不断更新中)
2011-04-29 11:54 1382Android学习资料分享(不断更新中) 最近 ...
相关推荐
总的来说,"Android动画详细探究.zip"资料包将带你深入理解Android动画的各个方面,包括基础和高级概念,以及如何在实践中运用。通过"WidgetDemo"的实例,你可以直观地看到动画在实际应用中的效果,从而提升你的...
本篇文章将深入探讨如何在Android中实现Activity之间的切换动画,以及涉及到的相关源码和技术工具。 首先,Activity的切换动画主要通过Android的Transition API来实现。Transition API允许开发者自定义进入、退出、...
这个"旋转动画.zip"资源包提供了一套用于Android程序的源码示例,旨在帮助学生、程序员和新手深入理解Android中的旋转动画实现。以下将详细讲解与这个源码相关的知识点: 1. **Android动画系统**:Android提供了两...
在Android中,Activity、Adapter和View可以视为MVC模式的实现,Activity作为Controller,Model通常涉及数据存储,View负责显示。 9. **Activity的生命周期** - Activity的生命周期由系统管理,包括onCreate()、...
在Android开发中,动画(Animation)是至关重要的一个部分,它为用户界面提供了生动和吸引人的交互体验。本文将深入探讨Android源码中的动画机制,包括基本动画、属性动画以及如何在实际项目中运用这些技术。 一、...
在安卓(Android)平台上,动画(Animation)是用户体验设计中的重要组成部分,它可以为...在分析“animation.rar”压缩包中的源码时,可以参照这些知识点,探究其实现细节,学习如何将动画功能融入到自己的项目中。
在Android UI动画中,我们可以看到几个关键的技术点: 1. **视差滚动**:当用户滚动界面时,不同元素以不同的速度移动,营造出深度感,增加立体体验。 2. **自定义ViewGroup**:通过自定义 ViewGroup,可以实现更...
源码中涉及到的图形渲染部分,包括UI设计、精灵动画、碰撞检测等,都是Android游戏开发中的关键技术。我们可以从中了解到如何使用Android的Canvas和Bitmap进行2D图形绘制,以及如何利用OpenGL ES实现更复杂的3D效果...
9. **广播接收者(BroadcastReceiver)**:广播是Android中的一种全局事件通知机制。源码中可能包含自定义BroadcastReceiver的例子,展示如何监听和响应系统或自定义广播。 10. **通知(Notifications)**:通知用于在...
《Android小游戏连连看源码详解》 在移动设备上,小游戏因其轻松有趣、易于上手的特点,深受用户喜爱。作为一款经典的小游戏,连连看在...总的来说,这个源码是Android小游戏开发的绝佳学习实例,值得深入探究。
《深入理解Android5源代码》是一本专注于解析Android 5.0系统内核与框架的专著,旨在帮助开发者和爱好者深入探究这个广泛使用的移动操作系统。Android 5.0,代号“Lollipop”,带来了诸多重要的改进和优化,包括性能...
【标题】"android-motion-detection-...通过深入探究"android-motion-detection-master"源码,开发者不仅可以学习到运动检测技术,还能掌握Android平台上的软件开发实践,这将对个人技能的提升和职业发展大有裨益。
4. **事件监听**:在Android中,通常通过OnClickListener、OnTouchListener等接口来监听用户的操作。在象棋游戏中,需要处理棋子的拖放事件,以及判断是否合法落子。 5. **Activity和Fragment管理**:游戏可能包含...
通过分析和学习这个源码,开发者可以了解到如何在Android平台上构建一个完整的游戏应用,包括游戏逻辑、用户界面设计、数据管理、动画效果等方面的知识。 【标签】"android 源码 安卓" 明确了该源码的主要技术领域...
在Android 7.1.2的源码中,我们可以深入探究这个移动操作系统的内部机制,这对于开发者来说是一个宝贵的资源,尤其是对于那些希望优化应用性能、理解系统底层工作原理或者进行自定义修改的人来说。本篇文章将重点...
在Android应用开发中,UI界面绘制是至关重要的一个环节,它直接影响到用户的交互体验和应用的整体视觉效果。本文将深入探讨Android UI界面的绘制原理,通过源码分析,帮助开发者理解这一过程的内部机制。 首先,...
从提供的文件名来看,我们可以看到一些关于`Gallery`的源码解析和探究文章,如"使用Android自带Gallery组件实现CoverFlow",这可能涉及到将`Gallery`组件改造为更复杂的CoverFlow效果,类似于iPod的封面翻转。...
如今,我们有机会深入探究其背后的Android源码,了解游戏的运作机制和编程技巧,这对于Android开发者尤其是游戏开发爱好者来说,是一份宝贵的学习资料。 首先,我们要明白Android游戏开发的基础是Java语言,因此,...
1. 自定义View基础:在Android中,自定义View通常是为了满足特定的设计需求或扩展原生View的功能。MyImageView2可能包含了对默认ImageView的一些扩展,如手势操作、动画效果、图片处理等。自定义View需要重写onDraw...