2011-07-01 13 views
0

オーバーレイアイテム(ドロアブル)を、自分のベアリングonLocationChangedに従って回転したいとします。これはどうすればいいですか?私はitemizableOverlayとdrawableを使って、overlayItemを使ってみましたが、成功しませんでした。Androidマップビュー:オーバーレイアイテムを回転する

public void bearingRotation(float boatBearing){      
    Bitmap bm = ((BitmapDrawable)drawableCurrPos).getBitmap();   
    Matrix mat = new Matrix(); 
    mat.postRotate(boatBearing); 
    Bitmap bMapRotate = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(),bm.getHeight(), mat, true); 

    drawableCurrPos = new BitmapDrawable(bMapRotate);      
} 

答えて

0

私は、そのドロアブルをビットマップに変換することをお勧めします。

Bitmap bm = ((BitmapDrawable)drawable).getBitmap(); 
Matrix mat = new Matrix(); 
     mat.postRotate(90); 
     Bitmap bMapRotate = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(),bm.getHeight(), mat, true); 

このbMapRotateをBitmapDrawableを使用して変換し、それをあなたの位置へのピンポインタとして適用します。

+0

ピンポインタについてもう少し正確にお答えください。 – Hannes

+0

これは、私がビットマップとドロワーブルのためにアイテム化されたオーバーレイを有効にしなければならないことを意味しますか? – Hannes

+0

@ Hannes ..地図上にオーバーレイアイテムを表示することができれば、上のコードはそのドロワブルを回転させるのに便利です。そのドロアブルを回転させたいときは、オーバーレイItemからドロアブルを取り除くだけです。ドロアブルを回転させます(上記の場合は90度回転します)。次に、そのドロアブルをオーバーレイアイテムに再び追加します。 – Harshad

関連する問題