用计时器旋转触摸事件上的图片

时间:2012-03-15 14:54:48

标签: android timer ontouchevent

我正试图在触摸事件上使用计时器旋转图片。我创建了一个没有计时器/线程的方法。但是当我在计时器中使用它时,它不起作用。我在android编程方面不擅长。

----------->这是ontouch事件

@覆盖

public boolean onTouch(View v, MotionEvent event){

 t1=new TimerTask()
{                

 public void run()
 {                              

  angle += 40; 
  spin(angle);
  if(angle >=360)
  angle = 0;
 }
 };

t.schedule(t1,2*1000);

return false;
}});

---------->这是我的旋转方法

public void spin(int degree)
{
  Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
  Matrix mat = new Matrix();
  mat.postRotate(degree);
  Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), mat, true);
  bottle.setImageBitmap(bMapRotate);
}

1 个答案:

答案 0 :(得分:0)

使用android.os.Handler代替您的计时器 -

@override
public boolean onTouch(View v, MotionEvent event){
    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
             angle += 40; 
              spin(angle);
              if(angle >=360)
              angle = 0;
        }
    }, 2*1000);
}