Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Traducción relativa en animación de propiedades en xml

Actualmente tengo un ImageView que extiende la longitud del dispositivo y es escalado por 3. Obviamente, los lados se recortan fuera de la pantalla. Quiero que la animación comience con el lado izquierdo de la imagen en el lado izquierdo del dispositivo, luego muévala hasta que el lado derecho de la imagen esté en el lado derecho del dispositivo.

Puedo lograrlos mediante la creación de la imagen a su base inicial, básicamente, haciendo esto:

  <objectAnimator android:propertyName="translationX" android:duration="6000" android:valueTo="-1280" android:valueType="floatType" /> 

Sin embargo, esto sólo funciona porque sé el tamaño exacto de la imagen y el tamaño exacto de mi Motorola Xoom. Naturalmente, quiero que esto funcione en cualquier dispositivo, así que necesito algo menos codificado. Con las animaciones Tween, funciona bien ya que se puede traducir algo basado en un porcentaje de su tamaño. No fue perfecto, pero funcionó lo suficientemente bien para este efecto. Las aniimations de la característica no parecen tener esto. Las propiedades translationX y X deben tener unidades.

¿Existe una manera sencilla de traducir una vista con animaciones de propiedades en función de la ubicación relativa? ¿Voy a tener que hacer un archivo de animación por separado para cada dimensión? ¿Hay alguna otra manera de lograr este efecto? Prefiero no hacer mi propia animación.

  • Creación de accesos directos en Android mediante Intent
  • Texto de Android en lista de capas
  • Error de diseño de Android: "Id de recurso <res_id> no es del tipo STYLE (en lugar de attr)"
  • ¿Cómo hacer que el primer elemento de un ListView se seleccione como predeterminado en el inicio?
  • Ajuste ImageView sin alargar la imagen
  • Cambiar la visibilidad del widget al hacer clic
  • Android: uso de view.setX () y setY en api 8
  • Diferencia entre onCreateView y onViewCreated en Fragmento
  • 2 Solutions collect form web for “Traducción relativa en animación de propiedades en xml”

    ¿Podría crear código para el tamaño de dispositivo separado 'cubos' que desea soportar (por ejemplo, tableta, teléfono paisaje, etc) que ha conocido dp anchos. Entonces usted podría utilizar esto podría abajo para escalar la imagen (donde 384 es 384dp para cierto ancho del cubo del dispositivo) y hacer algo similar para el int del valueTo que usted necesita.

     //Get the device screen pixel density so that you can scale //the image in density independent pixels rather than pixels final float scale = getActivity().getResources(). getDisplayMetrics().density; //set the number of dp for the height and width by changing //the number you multiply the (scale + 0.5f) by eg 384 int pixelsh = (int) (384 * scale + 0.5f); int pixelsw = (int) (384 * scale + 0.5f); 

    Esta es la forma de convertir píxeles absolutos en píxeles dp. No sé cómo usar estos para lo que está haciendo, pero al menos es un comienzo.

    Debe crear la animación en tiempo de ejecución pasando el tamaño de pantalla de la pantalla del dispositivo actual. Primero obtenga el tamaño de la pantalla (NOTA: las métricas (ancho, altura) cambian dependiendo de la rotación del dispositivo) :

     DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int screenSize = metrics.widthPixels; 

    Y luego crear su ObjectAnimator:

     ObjectAnimator oa = ObjectAnimator.ofFloat(*yourImageView*, "translationX", 0, (Float) screenSize); oa.setDuration(6000); oa.start(); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.