我最近遇到了一个问题Android:图像围绕中心旋转,这在 Unconn 的帮助下得到了解决。
然而,事实证明,该解决方案 - 以及它正在工作 - 的性能确实比 RotateAnimation 的东西差得多。
到目前为止我所拥有的:1) FrameLayout 与两个 ImageViews,在彼此之上 2) SensorEventHandler,它根据测量的标题移动下视图。如果我使用 RotateAnimation,这可以接受
我想加快速度并稍微平滑动画,但失败了。这是当前的解决方案: 1)具有单独线程的 SurfaceView,控制图层的绘制 2)不执行下面的代码,线程可以达到 50 fps 左右。3)使用下面的代码,帧速率下降到 5ps 甚至更少,所以它不再是非常流畅的东西......
这是代码:
mRadar:显示“雷达”的位图,从早期资源加载 mHeading:从传感器获取的当前航向,以度为单位 mRadarW,mRadarH:图像的初始宽度/高度,在创建时确定
Matrix m = new Matrix();
m.setRotate(mHeading, mRadarW/2, mRadarH/2);
Bitmap rotated_radar = Bitmap.createBitmap(mRadar, 0, 0, mRadarW, mRadarH, m, true);
canvas.drawBitmap(rotated_radar, (mRadarW - rotated_radar.getWidth())/2, (mRadarH - rotated_radar.getHeight())/2, null);
canvas.drawBitmap(mRadar, 0, 0, null);
Matrix/drawBitmap 的性能是否已知不那么好,实际上比 RotateAnimation 更差?如果没有机会使用它:您可以提出哪些选择?虽然 RotateAnimation 现在可以工作,但我需要合成一个更复杂的图像,然后我才不得不去 RotateAnimation,所以我担心,我会再次与 drawBitmap 和朋友们松散......
哦,我想念CALayers :)