2012-03-30 3 views
2

Android用のカスタムマップアプリケーションを作成しようとしています。私は画像としてマップを持っており、私は点滅する四角形としてユーザーの位置を表示したい。ここで私はこれまでに書いたコードです: キャンバスを点滅させて不変に自動回転させるにはどうすればいいですか?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ImageView resultImageHolder = (ImageView) findViewById(R.id.test_image); 
    layout = (FrameLayout) findViewById(R.id.frame_layout); 
    draw(); 

} 

    private void draw() { 
    int width = 200; 
    int height = 200; 

    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444); 
    bitmap.eraseColor(Color.TRANSPARENT); 

    Paint paint = new Paint(); 
    paint.setColor(Color.BLUE); 

    Canvas canvas = new Canvas(bitmap); 

    canvas.drawRect(19, 11, 30, 19, paint); 
    ImageView imageView = new ImageView(this); 

    imageView.setImageBitmap(bitmap); 

    layout.addView(imageView); 

} 

は今、私はキャンバスを点滅させると、その正しい位置にあっても、画面の自動回転をキャンバスの滞在をする必要があります。どうすれば両方のことを達成できますか?

答えて

1

マニフェストのアクティビティ部分にandroid:screenOrientation="portrait"を入れて無効にすることができます。あなたが合うものに100を変更することができます

Long timer = System.currentTimeMillis(); 

draw() 
{ 
---- 
if(System.currentTimeMillis()>timer+100) 
{ 
timer=System.currentTimeMillis(); 
    canvas.drawRect(19, 11, 30, 19, paint); 
} 

:あなたはこのようなタイマーを持っている可能性が点滅については 。あなたが描いたことから出てきたもう一つの問題は、一度だけ呼び出されることです。

+0

他に何時にdraw()を呼び出す必要がありますか? – Bruce

+0

新しいものを再描画したり、点滅させたい場合は、whileループでそれを持つべきです。 – jersam515

1

あなたはあなたのROTATION_90 ROTATION_270 ROTATION_180 のような回転フラグを返し、点滅のために、私はあなたがたとえば、あなたのキャンバスのアルファを使用したり、アニメーションまたは変更しなければならないと考えますgetRotation()メソッドを使用して、あなたのアプリケーションの動作を定義する必要が回転取り扱いの場合:
yourCanvas.drawARGB(alpha, r, g, b);この場合、アプリの作業中に常にアルファを変更する必要があります。

関連する問題