Анимация сальто карты не выглядит хорошо на Android 7 Nougat

Спасибо за чтение моего вопроса. У меня проблема возникает только в Android 7.0 (Nougat) и происходит то, что карта (фрагмент с изображениями), когда она вращается в анимации, неожиданно обрезает часть изображения, смотрите:

Android 7 Нуга Скриншот

Карта в ротации

Android 4.4 Kitkat Скриншот

Карта в ротации

Я использую анимацию (еще не objectAnimator), вот мой код:

@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
    // Angle around the y-axis of the rotation at the given time
    // calculated both in radians and degrees.
    final double radians = Math.PI * interpolatedTime;
    float degrees = (float) (180.0 * radians / Math.PI);

    Log.d(LOG_TAG," "+interpolatedTime);

    // Once we reach the midpoint in the animation, we need to hide the
    // source view and show the destination view. We also need to change
    // the angle by 180 degrees so that the destination does not come in
    // flipped around
    if (interpolatedTime >= 0.5f) {
        degrees -= 180.f;
        fromView.setVisibility(View.GONE);
        toView.setVisibility(View.VISIBLE);

    }

    if (forward)
        degrees = -degrees; //determines direction of rotation when flip begins


    //computing
    final Matrix matrix = t.getMatrix();
    camera.save();
    camera.translate(0, 0, Math.abs(degrees) * 3f);
    camera.rotateY(degrees);
    camera.getMatrix(matrix);
    camera.restore();
    matrix.preTranslate(-centerX, -centerY);
    matrix.postTranslate(centerX, centerY);
}

Большое спасибо за то, что поделились своими идеями.:)

1 ответ

Прочитайте https://developer.android.com/reference/android/view/View.html

Вы должны установить расстояние до камеры. Я знаю, что этот вопрос старый, но я надеюсь, что это кому-нибудь поможет.

Другие вопросы по тегам