Ich kann die Layout-Basis in toYDelta="100%
oder toYDelta="50%
etc übersetzen.
Aber ich möchte das Layout nur in 300dp Height
animieren.
Wie funktioniert das auf 300dp Höhe?
Bitte helfen Sie mir für dieses Problem.
Danke.
Überraschenderweise scheint es keine Möglichkeit zu geben, eine 300-dpi-Translationsanimation in XML anzugeben. Die Übersetzungs-Animation XML-Syntax akzeptiert drei verschiedene Abstandsangaben:
android:toYDelta="10"
) android:toYDelta="10%"
) android:toYDelta="10%p"
) Sie werden auch auf die gleichen Spezifikationen beschränkt, wenn Sie eine TranslateAnimation
via Java . In Java können Sie jedoch den äquivalenten absoluten Pixelwert (für ein bestimmtes Gerät) berechnen und diesen als Pixelabstand angeben.
Um 300dp zu erhalten, können Sie entweder einen Dimen-Wert von 300dp definieren in XML oder einfach die Berechnung im Code durchführen.
Innerhalb dimens.xml
:
Innerhalb Ihrer Aktivität / Ihres Fragments / etc:
%Vor%ODER
Innerhalb Ihrer Aktivität / Ihres Fragments / etc:
%Vor% Dann brauchst du nur diese Entfernung zu verwenden, wenn du dein TranslateAnimation
:
Wenn Sie Android 3.0 und höher verwenden, können Sie die neue Property-Animation Framework, um die gleiche Animation eleganter auszudrücken:
%Vor%Wenn Sie Android 2.x weiterhin verwenden, können Sie NineOldAndroids verwenden, um rückwärtskompatible Animationssyntax zu erhalten. Es wird automatisch die neuen Eigenschaftsanimationen für Geräte verwenden, die es unterstützen.
%Vor%