3D旋转-透视

6
public class MainActivity extends Activity {

LinearLayout rotator;

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rotator = (LinearLayout) findViewById(R.id.rotator);

    ObjectAnimator rotation = ObjectAnimator.ofFloat(rotator, "rotationY", 0, 360);
    rotation.setDuration(3000);
    rotation.start();

}
}

我有上面的代码,它可以围绕Y轴旋转视图。问题是,透视似乎太“强”了 - 前景中的视图边缘变得太大,而背景中的边缘变得太小。是否有任何可能“降低”透视因素?


搜索引擎标签:换句话说,我们使用 setCameraDistance 调整视点沿 z 轴移动,从而改变旋转 X 和旋转 Y 翻转动画相机的深度。 - arberg
1个回答

9
int distance = 1900;
float scale = getResources().getDisplayMetrics().density;
rotator.setCameraDistance(distance * scale);

所以这是适用于所有屏幕密度的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接