Android中Anmation运动时的监听方法
2015-06-08 22:36
531 查看
在开发过程需要对不规则的Animation运动进行坐标实时监听,但是基本上单线程很难实现,无论实在WindowsFocusChanged()里面依靠Timer调用坐标,还是利用其它监听器都不行,最后使用另一个线程监听的办法。
同时不断获得Animation运动中的Metrix,其中Metrix可以看做一个3X3的矩阵,Metrix[2]和Metrix[5]可以获得对应X和Y的偏移量,再加上原坐标就可以获得运动时的X,Y坐标。
下面贴代码:
private Thread getLocationThread = new Thread()//对应FlySwa1的监听线程
{
@Override
public void run()
{
while(ThreadFlag)
{
try{
Transformation transformation = new Transformation();
anim3.getTransformation(AnimationUtils.currentAnimationTimeMillis(), transformation);
Matrix matrix = transformation.getMatrix();
float []matrixValus = new float[9];
matrix.getValues(matrixValus);
location[0]=(int)matrixValus[2]+FlySwa1.GettempX();
location[1]=(int)matrixValus[5]+FlySwa1.GettempY();
try{
Thread.sleep(50l);
} catch (InterruptedException e){
e.printStackTrace();
}
}catch(Exception e)
{
}
}
//if(!ThreadFlag)
//{
// return;
//}
}
};
同时不断获得Animation运动中的Metrix,其中Metrix可以看做一个3X3的矩阵,Metrix[2]和Metrix[5]可以获得对应X和Y的偏移量,再加上原坐标就可以获得运动时的X,Y坐标。
下面贴代码:
private Thread getLocationThread = new Thread()//对应FlySwa1的监听线程
{
@Override
public void run()
{
while(ThreadFlag)
{
try{
Transformation transformation = new Transformation();
anim3.getTransformation(AnimationUtils.currentAnimationTimeMillis(), transformation);
Matrix matrix = transformation.getMatrix();
float []matrixValus = new float[9];
matrix.getValues(matrixValus);
location[0]=(int)matrixValus[2]+FlySwa1.GettempX();
location[1]=(int)matrixValus[5]+FlySwa1.GettempY();
try{
Thread.sleep(50l);
} catch (InterruptedException e){
e.printStackTrace();
}
}catch(Exception e)
{
}
}
//if(!ThreadFlag)
//{
// return;
//}
}
};
相关文章推荐
- Android游戏开发第一天
- 关于国内Android游戏的真相
- 高仿精仿愤怒的小鸟android版游戏源码
- 关于Android 获得图片的总结
- 不错的金庸人物考考你android游戏源码
- OGEngine——基于java的手游开发开源引擎
- Android游戏引擎大搜罗
- 简单盘点手游开发引擎
- Cocos2d唯一死敌的崛起,OGEngine来了
- Android学习之surfaceview(一)
- Android游戏开发实例第2步之游戏架构
- 剖析游戏开发用view还是surfaceView ?!
- 讲解游戏开发与项目下的hdpi 、mdpi与ldpi资源文件夹以及游戏高清版本的设置
- Java程序猿,手游引擎怎么选?(入门篇)
- Android安卓游戏引擎大搜罗
- 简单盘点游戏开发引擎
- 【Android游戏开发十一】手把手让你爱上Android sdk自带“9妹”(9patch 工具),让Android游戏开发更方便!
- 手机游戏开发工程师培训教程
- 使用irrlicht开发3D移动游戏