Android中Anmation运动时的监听方法

在开发过程需要对不规则的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;
    		//}
    	}
    };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值