2010-12-02 7 views
0

私は時計の手を作るためのアプリを作っています。つまり、私は画面上に単純な線を描いて時計の手のように回転したいと思います。私はタイマーを使ってこれをしますか?線の位置は、他のstaionary.In folllowingコードまま、私は、画面上に線を引き、線の).Only一方の端点が回転べきリフレッシュ:私は、ラインをリフレッシュさせるためのタイマーを追加し、2秒後に表示しますか?

DrawView.java:

package LineRefresh.xyz.com; 

import java.util.Timer; 
import java.util.TimerTask; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.view.View; 

public class DrawView extends View { 
Paint paint = new Paint(); 

public DrawView(Context context) { 
    super(context);  
} 

@Override 
public void onDraw(final Canvas canvas) { 
paint.setColor(Color.BLACK); 
canvas.drawLine(50, 200, 270, 200, paint); 


} 

}


LineRefresh.java:

package LineRefresh.xyz.com; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 

public class LineRefresh extends Activity { 
DrawView drawView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    drawView = new DrawView(this); 
    drawView.setBackgroundColor(Color.WHITE); 
    setContentView(drawView); 

} 
} 

答えて

0

このような何か試してみてください:

プライベートハンドラmHandler =新しいハンドラを();あなたのOnCreateまたはあなたが使用できるタイマーを起動したい任意の方法で

private Runnable MethodToDrawClockLine = new Runnable() 
{ 
    public void run() 
    { 
     //execute here your drawing routine. 
     // after drawing set the timer for another x period of time 
     mHandler.postDelayed(MethodToDrawClockLine, 1000); //it'll re-execute it after 1sec. 
    } 
} 

mHandler.removeCallbacks(mUpdateTimeTask)。 //新しいものを追加する前に必ずハンドラを削除してください。
mHandler.postDelayed(MethodToDrawClockLine、1000); // 1秒後に実行します。

完了したら、ハンドラを削除してください。 mHandler.removeCallbacks(mUpdateTimeTask);

それはそれです。

関連する問題