android补间动画:坐标如何在翻译中起作用?

时间:2014-05-30 18:10:39

标签: java android android-animation

我现在正在学习Tween Animation,所以我制作了一个非常简单的动画,如

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false"
    android:duration="5000"
    android:fillAfter="true"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator">

    <translate 
        android:fromXDelta="100%p"
        android:toXDelta="0%p"/>

</set>

我希望ImageView从屏幕的右边缘向左移动。 ImageView位于屏幕底部的片段中,

public class BottomFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.bottom_fragment, container, false);

    ImageView back = (ImageView)view.findViewById(R.id.bottomback);
    Animation move = AnimationUtils.loadAnimation(getActivity(), R.anim.move);
    back.startAnimation(move);

    return view;
}
}

我认为fromXDelta="100%p"会将图片的左上角放在右边缘,toXDelta="0%p"会将图片的左上角放在左边缘。但是图像似乎从远离边缘移动到屏幕并停在屏幕中间。看起来位置是图像的中心而不是左上角。我糊涂了。 Tween Animation中的坐标系如何工作?我应该如何从屏幕/片段的边缘开始?

1 个答案:

答案 0 :(得分:0)

好吧,现在好像:

  1. 图片的位置是它的中心,而不是左上角。
  2. 通过使用百分比,距离相对于屏幕宽度的宽度。因此,0%表示图片中心位于屏幕中间,50%表示边缘。因此,如果我希望图片从一个边缘移动,我应该使图片的宽度与屏幕的宽度相同,然后设置fromXDelta=100%100%p