android - 3D旋转-透视

标签 android animation 3d rotation perspective

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 轴旋转 View 。问题是,透视似乎太“强”——前景中的 View 边缘变得太大而背景中的边缘变得太小。有没有可能“降低”视角因素?

最佳答案

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

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

关于android - 3D旋转-透视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512772/

相关文章:

android - 在启动 Intent 之前,如何知道系统在android中选择了多少隐式 Intent

jquery - 如何在 Jquery 中重置动画

c# - 在 Unity 3D 中使用触摸输入在地形上移动相机

c++ - 具有共享内存的 cuda 平铺 3d 卷积实现

Qt 变换矩阵

Android可绘制: layer-list repeat bitmap does not load when entirely covered

javascript - 使用 Wikitude SDK 相对于设备位置的 AR 对象

Android:将 EditTextPreference 添加为 ListPreference 项

javascript - 第二只动画眼睛的重复代码

ios - Completion^ block 未在 UIView 动画中调用