Android: uso de ObjectAnimator para traducir una vista con valores fraccionarios de la dimensión de la vista

Parece que las animaciones antiguas (translate, scale, y así sucesivamente) ya no son aceptados por elAnimationInflater, al menos a partir de ICS. Leí su código en 4.0.4, y espera explícitamente solo los elementos XMLset, objectAnimator, animator.

A pesar de que la documentación enhttp://developer.android.com/guide/topics/resources/animation-resource.html Continúa incluyendo las animaciones de vista, parecen estar en desuso. Tratar de usarlos da como resultado, por ejemplo, el error.java.lang.RuntimeException: Unknown animator name: translate.

Como tal, se hace necesario utilizar Android.ObjectAnimator. Sin embargo, no acepta valores fraccionarios de la dimensión asociada de sí mismo o su padre (ancho paratranslationX, por ejemplo) como lo hicieron las animaciones de vista anterior en el formulario"75%p".

Construyendo elObjectAnimator manualmente en tiempo de ejecución, mediante la obtención programada del tamaño del Fragmento, no es factible porque elFragmentTransaction Solo acepta animaciones declarativas especificadas por un resid.

Mi objetivo es traducir fuera de la pantalla un Fragmento que está llenando una Actividad completa (básicamente estoy haciendo una transición de cambio entre dos fragmentos). Esta es la existenteTranslationAnimation implementaciónslide_in_right.xml, que junto a su contraparteslide_out_left.xml es por alguna razón no expuesta enandroid.R.anim, y por lo tanto tengo que duplicarlos en mi código base):

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="100%p"
    android:toXDelta="0"
    android:duration="@android:integer/config_mediumAnimTime"/>
</set>

Mi nivel de API se establece en 14.

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta