美好的一天,在浪费了3个多小时之后我的第一个问题。我已经回顾了几十个不同的帖子,这些帖子有类似的问题和一小部分答案。
我正在设计一个带位图和角度的函数,并返回一个旋转版本,用于我的宇宙飞船安卓游戏
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开发人员的资料对我来说似乎很清楚,但我试过的任何方法都会对枢轴点做任何事情。旋转总是发生,但有效地将我的船转移到其他六角
提前致谢^^
答案 0 :(得分:0)
无法使用此功能进行管理,因此我最终制作了另一个具有相同效果的功能。
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();
}
它会旋转画布
答案 1 :(得分:0)
在您发布此问题时,我到达的地点与您相同。我的位图旋转了,但也偏移了。直到您在其下方或上方放置另一个图像,该偏移量才非常明显,然后变得非常明显。
澄清一下,您是否要解决的问题是围绕着飞船图像旋转整个显示器,使位图图像保持静态(即始终指向同一方向)?
我正在考虑使用除Canvas以外的其他工具来执行此操作,如果我发现更有效的方法,则会报告。