- 浏览: 5818527 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
http://code.google.com/p/java-universal-tween-engine/
可以用来创建平滑的移动系统,比如循环,移动,旋转等。由于项目使用纯java写成,所以支持swt,swing,android,opengles等。Tween缓冲大家应该都不陌生,说白了就是从一起始位置逐渐移动到目标位置的过程,这个过程可以是加速移动,也可以是减速移动,这些不同的缓动方式就是Tween的各种ease。
源码在最后,将其解压后复制到src就可以了。
用法,先定义一个需要运动的物体:
然后,实现Tweenable接口,用于表明运动的返回值和变化值
最后,在Activity中运动:
可以用来创建平滑的移动系统,比如循环,移动,旋转等。由于项目使用纯java写成,所以支持swt,swing,android,opengles等。Tween缓冲大家应该都不陌生,说白了就是从一起始位置逐渐移动到目标位置的过程,这个过程可以是加速移动,也可以是减速移动,这些不同的缓动方式就是Tween的各种ease。
源码在最后,将其解压后复制到src就可以了。
用法,先定义一个需要运动的物体:
public class Particule { private float x, y; public float getX() { return x; } public float getY() { return y; } public void setX(float x) { this.x = x; } public void setY(float y) { this.y = y; } }
然后,实现Tweenable接口,用于表明运动的返回值和变化值
import aurelienribon.tweenengine.Tweenable; public class TweenableParticule implements Tweenable { // The following lines define the different possible tween types. // It's up to you to define what you need :-) public static final int X = 1; public static final int Y = 2; public static final int XY = 3; // Composition pattern private Particule target; // Constructor public TweenableParticule(Particule particule) { this.target = particule; } // Tweenable implementation @Override public int getTweenValues(int tweenType, float[] returnValues) { switch (tweenType) { case X: returnValues[0] = target.getX(); return 1; case Y: returnValues[0] = target.getY(); return 1; case XY: returnValues[0] = target.getX(); returnValues[1] = target.getY(); return 2; default: assert false; return 0; } } @Override public void onTweenUpdated(int tweenType, float[] newValues) { switch (tweenType) { case X: target.setX(newValues[0]); break; case Y: target.setY(newValues[1]); break; case XY: target.setX(newValues[0]); target.setY(newValues[1]); break; default: assert false; break; } } }
最后,在Activity中运动:
import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.view.View; import aurelienribon.tweenengine.Tween; import aurelienribon.tweenengine.TweenGroup; import aurelienribon.tweenengine.TweenManager; import aurelienribon.tweenengine.Tweenable; import aurelienribon.tweenengine.equations.*; import com.ql.test.Particule; import com.ql.test.TweenableParticule; /** * http://code.google.com/p/java-universal-tween-engine/ * @author admin * */ public class Screen4 extends Activity { Particule particule; TweenManager manager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.screen_4); // Button btn_11=(Button)findViewById(R.id.btn_11); setContentView(new ScreenView(this)); // Let's say we are working with an Android target. We need to pool our objects. Tween.setPoolEnabled(true); // We also need a manager to handle every tween. manager = new TweenManager(); // We can now create as many interpolations as we need ! particule=new Particule(); particule.setX(100); particule.setY(100); Tweenable tweenParticle=new TweenableParticule(particule); Tween tween = Tween.to(tweenParticle, TweenableParticule.XY, 10000, Cubic.OUT).target(400, 500); manager.add(tween.start()); tween = Tween.to(tweenParticle, TweenableParticule.XY, 10000, Bounce.OUT).target(100, 500).delay(10000); manager.add(tween.start()); // TweenGroup tweenGroup=new TweenGroup().pack( // Tween.set(tweenParticle, TweenableParticule.XY), // Tween.to(tweenParticle, TweenableParticule.XY, 10000, Sine.OUT), // Tween.from(tweenParticle, TweenableParticule.XY, 10000, Sine.OUT), // Tween.to(tweenParticle, TweenableParticule.XY, 10000, Bounce.OUT) // ); // manager.add(tweenGroup.sequence().repeat(2,5000).start()); // TweenGroup tweenGroup= new TweenGroup().pack( // Tween.to(tweenParticle, TweenableParticule.XY, 500, Quad.INOUT).target(200), // Tween.to(tweenParticle, TweenableParticule.XY, 500, Quad.INOUT).target(100), // Tween.to(tweenParticle, TweenableParticule.XY, 500, Quad.INOUT).target(200).delay(1000) // ).sequence().start(); } @Override protected void onResume() { super.onResume(); } @Override protected void onPause() { super.onPause(); manager.clear(); } class ScreenView extends View{ Paint paint; public ScreenView(Context context) { super(context); // TODO Auto-generated constructor stub paint=new Paint(); paint.setAntiAlias(true); paint.setColor(Color.RED); paint.setStyle(Paint.Style.FILL_AND_STROKE); invalidate(); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub //super.onDraw(canvas); canvas.drawCircle(particule.getX(), particule.getY(), 20, paint); manager.update(); invalidate(); } } }
- aurelienribon.rar (16 KB)
- 描述: 动画库
- 下载次数: 215
- TweenEngine-lib-4.3.zip (29.7 KB)
- 描述: jar和源码
- 下载次数: 202
评论
3 楼
zhuruyi
2012-08-27
奇了怪了 为什么hg下载总是提示失败
2 楼
2006her
2012-03-09
感谢分享啊。
1 楼
wxw404
2011-11-01
谢谢收了 拿来用
发表评论
-
http://www.android-studio.org/
2018-08-06 09:25 0http://www.android-studio.org/ ... -
SlidingDrawer源码
2012-03-14 10:13 3804我把SlidingDrawer源码提了出来,希望对1.5的朋友 ... -
简单拖动效果(带Cache,需要完善)
2011-10-13 15:10 4225如何去实现一个具有幻象的拖拽效果? 所谓”幻象“就是当你按下去 ... -
Android Activity中启动另一应用程序的方法,无需得到类名
2011-08-02 14:46 17256在网上搜索了一会相关的实现代码,发现所有的文章都说是需要包名和 ... -
网上发现的一个android UI包
2011-05-24 12:21 4089里面有些UI和效果 -
android中使用代码启动其他程序
2011-04-29 23:15 5280你要訪問其他的程序,那麼這個程序要先裝載到模擬器或真機上面,因 ... -
listView背景问题以及限制editText字数以及如果想通知别人已经不能在写
2011-04-29 22:44 32031.在listView设置好背景之后 你如果点击空白出 你会发 ... -
Android键盘和触摸事件处理
2011-04-29 22:32 7002activity和VIEW都能接收触摸和按键,如果响应事件只需 ... -
Android的绘制文本对象FontMetrics的介绍及绘制文本
2011-04-29 22:29 11488一。Android绘制文本对象FontMetrics介绍 ... -
Android View 拖动&插入
2011-04-29 22:20 3543View 拖动&插入 即: 支持 拖动图标 然后 ... -
使TextView文本可以水平和垂直滚动
2011-04-29 21:59 14425在做一个小的电子书程序,要求电子书具有放大缩小的功能,所以肯定 ... -
ArrayAdapter源码
2011-04-29 12:29 6297看看人家怎么写的。 /* * Copyright (C ... -
Android下获取开机时间
2011-04-02 21:51 6222找了一圈没发现能得到开机启动时间资料,于是乎突发奇想,得到了解 ... -
AutoCompleteTextView连接到数据库
2011-03-30 20:49 4724AutoCompleteTextView可以根据输入 ... -
改变屏幕Brightness(亮度)
2011-03-30 12:48 4600http://www.eoeandroid.com/forum ... -
android 拖拽图片&拖动浮动按钮到处跑
2011-02-24 20:55 31768来自老外: import android.app.Acti ... -
拖动一个控件在另一个控件(layout)上,并固定位置在几个位置显示
2011-02-24 20:51 5892实现效果: 鼠标拖动btn SSS,SSS在水平的layo ... -
Handler与Message类,实现n秒后无操作自动消失功能
2011-02-24 20:45 4634实现功能:某控件不操作10秒后,自动消失。如照相机变焦条出现后 ... -
带删除按钮的ListView
2011-02-24 10:33 6144不用说了,上图先: import java.util.A ... -
android3.0之Action Bar基础
2011-02-22 17:12 6828http://www.android123.com.cn/an ...
相关推荐
Universal Tween Engine是一个纯java实现的动画库。 地址:http://code.google.com/p/java-universal-tween-engine/ 只要能够用float表示的一切java对象它可以让它动画化,可以使用于Libgdx、Android、Swing等等
Java通用补间引擎(Universal Tween Engine)是一款强大的动画库,主要应用于Java开发环境中,用于创建流畅的2D和3D图形动画。这个引擎是开源的,最初托管在code.google.com,但现在可能已经迁移到了其他代码托管...
通用 Tween 引擎支持对来自任何 Java 项目(Swing、SWT、OpenGL 甚至基于控制台)中的任何对象的每个属性进行插值。 实现 TweenAccessor 接口,将其注册到引擎,并为您想要的任何内容设置动画! 在一行中,将您的...
在Android Studio 2.0中,开发者可以利用其强大的集成开发环境创建一个Tween动画的演示项目。首先,创建一个新的Android Studio工程,然后按照以下步骤操作: 1. 创建动画资源文件:在res/anim目录下,添加上述提到...
这个“tween-engine-demo.jar”文件很可能是一个Tween动画引擎的示例库,它包含了实现Tween动画所需的各种类和方法。开发者可以导入这个库,然后根据需求创建和控制动画。"data"可能包含了一些配置文件或者资源,...
Android---Tween动画 运用了4种Tween的动画效果,包括: rotate(旋转),scale(伸缩), alpha(透明度),translate(平移) 以及tween(综合4种效果)
首先,你需要创建一个动画对象,比如`TranslateAnimation`,然后设置它的起始和结束坐标,以及持续时间和重复模式。接着,你可以通过`start()`方法启动动画,并使用`setAnimationListener()`来添加监听器以获取动画...
总结,tween.js作为一款JavaScript动画库,极大地简化了创建平滑动画的过程,无论是新手还是经验丰富的开发者,都能快速上手并创作出富有创意的动态效果。结合实际项目中的需求,tween.js无疑能提升你的网页动态表现...
在"es6-tween-master"这个项目中,你可以期待看到如何巧妙地结合ES6的新特性与tween.js库,来创建出流畅、富有表现力的前端动画。通过对这些概念的理解和实践,你将能够提升自己的前端开发技能,打造出更具吸引力的...
3. **RotateAnimation**:旋转动画使视图绕着一个点旋转,`fromDegrees`和`toDegrees`用于设置开始和结束的旋转角度,`pivotXValue`和`pivotYValue`指定旋转中心点。 4. **AlphaAnimation**:透明度动画控制视图的...
Tween一词来源于英语“in-between”,意为“两者之间”,在动画领域中,它指的是在两个关键帧之间进行平滑过渡的过程。在本示例中,“Tween动画的旋转缩放透明度和平移 demo”着重展示了如何通过Tween动画实现对象的...
1. 使用 Timeline.createSequence() 方法来创建一个动画序列。 2. 使用 push() 方法来添加动画到序列中。 3. 使用 beginParallel() 方法来同时播放多个动画。 4. 使用 end() 方法来结束动画序列。 5. 使用 ...
Tween,源自英文“in between”,意为“介于之间”,在动画领域中,它指的是从一个状态平滑地过渡到另一个状态的过程。这种技术常用于2D和3D图形,网页设计,移动应用,以及各种软件界面中的动态效果。 在描述中...
“tween-master”这个文件可能是一个包含Tween动画示例代码或库的项目。通常,这样的项目会包含多个示例脚本和说明文档,帮助开发者理解和学习如何使用Tween技术。开发者可以通过研究这些示例,掌握如何在自己的项目...
除了以上基本的Tween动画,还可以通过`AnimationSet`类组合多个动画,创建更复杂的动画序列。`AnimationSet`允许开发者同时运行多个动画,或者按照特定顺序播放它们。 在实际开发中,通常会使用XML资源文件来定义...
例如,我们可以创建一个名为`slide_in_from_left.xml`的文件,用于实现从左侧滑入的动画: ```xml android:fromXDelta="-100%" android:toXDelta="0%" android:duration="500"/> ``` 在这个例子中,`<set>`...
它是Android动画系统中的一个重要组件,用于执行基于属性的动画。通过`ObjectAnimator.ofFloat()`或`ObjectAnimator.ofInt()`方法,我们可以指定目标对象和要动画化的属性。例如,要让一个View平滑地移动,可以创建...
这个Tween动画由两个scale和一个rotate元素组成,第一个scale让对象放大,第二个scale和rotate则让对象缩小并旋转,整个过程通过设置不同的interpolator(插值器)和duration(持续时间)实现平滑过渡。 其次,...