我正在eclipse上开发一个Android应用程序,并且一直在使用android.graphics.camera来转换图像。简而言之,我的应用程序采用了2D图像并给出了透视图。我的问题是我还希望在转换时在屏幕周围旋转图像。
final Matrix mMatrix = canvas.getMatrix();
canvas.save();
mCamera.save();
mCamera.rotateX(60);
mCamera.rotateY(0);
mCamera.rotateZ(0);
mCamera.getMatrix(mMatrix);
mMatrix.preTranslate(-this.gridWidth / 2, -this.gridHeight);
mMatrix.postTranslate(this.gridWidth / 2, this.gridHeight);
canvas.concat(mMatrix);
mCamera.restore();
//Draw and move image here
canvas.restore();
当图像到达屏幕底部时,相机会被翻译,图像会变形。我在屏幕上看到它的碎片,但它像向后或向侧面拉。我也尝试使用rotateZ属性旋转图像,但会产生相同的效果。一旦图像“落后”翻译点,它就会变得疯狂。
我认为这可能是一个模拟器错误,所以我将它加载到我的Droid X和Acer Iconia上,效果保持不变。
我还没有看到其他人有这个问题,所以我想这里有人可能会知道发生了什么。
任何想法?
答案 0 :(得分:0)
可以使用较新版本的Android解决此问题,以便更改相机距离:
http://developer.android.com/reference/android/graphics/Camera.html#setLocation(float,float,float)