将动画转换为Android中的正确位置

时间:2012-05-17 15:03:59

标签: android android-layout android-animation

我在应用程序中为图像创建了一个动画。图像从中间开始直到屏幕的左上角。现在我需要确保图像放置在左上角的所有设备中的正确位置。 目前,它位于左上角不同设备的不同位置。我该如何解决? 我的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">
    <translate
        android:fromXDelta="0%p"
        android:toXDelta="-36%p"
        android:fromYDelta="0%p"
        android:toYDelta="-30.9%p"
        android:duration="500"
        android:fillAfter="true" />
</set>

任何人都可以帮忙。

1 个答案:

答案 0 :(得分:0)

我得到了一些非常好的结果,所以希望这可以帮助你或任何人。这个想法很简单。

通过xml 定位您想要设置为它的最终位置的动画然后我使用TranslateAnimation并将其从值设置为任何浮动值和 0 。通过这种方式,窗口小部件/视图可以动画并停留在您将其放置在xml中的位置。

一个小例子,用于将TextView从屏幕外部设置为xml中指定的位置。

//This is just for getting the from value, from where animation starts.
WindowManager wm = (WindowManager) mContext
        .getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int width = display.getWidth();

Animation  moveRighttoLeft = new TranslateAnimation(width, 0, 0, 0);
moveRighttoLeft.setDuration(700);

AnimationSet animation = new AnimationSet(false);
animation.addAnimation(moveRighttoLeft);
myTextView.setAnimation(animation);

以下是xml的

<TextView
    android:id="@+id/mytextview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="This is a Text View"
    android:layout_marginLeft="30dp"/>