0

我正在 Eclipse 上开发一个 Android 应用程序,并且一直在使用 android.graphics.camera 来 3d 转换图像。简而言之,我的应用程序采用 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 上,效果保持不变。

我还没有看到其他人有这个问题,所以我想这里有人可能知道发生了什么。

有任何想法吗?

4

1 回答 1

0

可以使用允许您更改相机距离的较新版本的 Android 解决此问题:

http://developer.android.com/reference/android/graphics/Camera.html#setLocation(浮动,浮动,浮动)

于 2012-04-26T06:13:37.430 回答