簡體   English   中英

在Android上圍繞中心旋轉位圖

[英]Rotating a bitmap around center on android

美好的一天,我浪費3個多小時后在這里提出的第一個問題。 我已經審查了數十個不同的帖子,這些帖子有類似的問題和少量答案。

我目前正在為我的太空飛船android游戲設計一個函數,該函數需要位圖和角度,並返回旋轉的版本

public static Bitmap RotateBitmap(Bitmap source, float angle){ 


    Matrix matrix = new Matrix();

    matrix.setRotate(angle, source.getWidth()/2,  source.getHeight()/2);

    return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);

}

我嘗試了幾種不同的方法,混合了平移,后旋轉和預旋轉方法,但都被證明無效。 我必須承認我對矩陣的知識有限,但是android開發人員的資料對我來說似乎很清楚,但是我嘗試過的任何方法都不會對樞軸點產生任何影響。 旋轉總是發生,但有效地將我的船轉移到其他位置

在此先感謝^^

無法使用此功能進行管理,因此我最終制作了另一個具有相同效果的產品。

public void rotate(Bitmap paramBitmap, float angle, Canvas canvas, int x, int y)
{
    canvas.save();
    canvas.translate(x, y);
    canvas.rotate(angle);
    canvas.translate(-paramBitmap.getWidth() / 2, -paramBitmap.getHeight() / 2);
    canvas.drawBitmap(paramBitmap, 0, 0, new Paint());
    canvas.restore();

}

而是旋轉畫布

當您發布此問題時,我已經到達了您的觀點。 我的位圖旋轉了,但也偏移了。 直到您在其下方或上方放置另一個圖像,該偏移量才非常明顯,然后變得非常明顯。
澄清一下,您是否要解決的問題是圍繞着飛船圖像旋轉整個顯示器,使位圖圖像保持靜態(即始終指向同一方向)? 我正在考慮使用除Canvas以外的其他工具來執行此操作,如果我發現更有效的方法,則會進行報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM