您的位置:首页 > 移动开发 > Android开发

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;
//}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android游戏