3D动画/摄像机转型和现代化的设备(3d animation / Camera transforma

2019-09-29 12:03发布

在我的应用我有借助3D转换android.graphics.Camera 。 似乎直到我试图的Nexus做工精细。

我安装在Nexus 7(4.2.1)和Galaxy Nexus的(4.1.2)的应用程序,他们都完全不进行相机转型。 我有带摄像头的两个不同的意见,并都表现出非标准动画和不适相机转换。

谁可以解释这样的行为?

UPD:相机码

transformation.clear();     
transformation.setTransformationType(Transformation.TYPE_MATRIX);   
mCamera.save();     
final Matrix matrix = transformation.getMatrix();         
mCamera.translate(x,y,z);  
mCamera.getMatrix(matrix);  
matrix.preTranslate(-centerX, -centerY);        
matrix.postTranslate(centerX, centerY);         
mCamera.restore();

UPD2:银河S3(4.2),而与S2相同的(4.0.4)

Answer 1:

只需添加到getChildStaticTransformation结束

if (android.os.Build.VERSION.SDK_INT >= 16 /*JellyBean*/) child.invalidate();


Answer 2:

米哈伊尔提供的解决方案,在结束对我的作品getChildStaticTransformation

唯一的问题是getChildStaticTransformation方法将总是被调用。

我的解决办法是把代码刚刚更新后的x,y,z值每一个项目。

// items is a ArrayList of ControlItem for example
// x,y,z are custom property of ControlItem class

items.get(0).x = 250;
items.get(0).y = 100;
items.get(0).z = 0;

for ( ControlItem item : items )
{
    // Item must be invalidate with JellyBean and superior
    if ( android.os.Build.VERSION.SDK_INT >= 16 ) item.invalidate();
}

// getChildStaticTransformation() will be called after, transformation will be applied


文章来源: 3d animation / Camera transformation and modern devices