从中间到左上角的TranslateAnimation不会切断视图

时间:2015-10-23 20:00:29

标签: android android-animation translate-animation

我有一个名为mContainer的父容器和一个名为mChildImageView的子视图。 ImageView位于容器的中间,我正在尝试将ImageView翻译到左上角,而不会切断ImageView

我想要的是将ImageView的最高点转换为mContainer的左上角,这样会使ImageView被切断。

这是我正在使用的以下代码,因为你可以看到我使用的是Absolute坐标,我想让它更具动态性,我该如何实现呢?

TranslateAnimation a = new TranslateAnimation(
            Animation.ABSOLUTE,             // Specifies X-Type interpretation, ABSOLUTE, RELATIVE_TO_SELF, RELATIVE_TO_PARENT
            0.0f,                           // Change in x coordinate at start of animation, can be absolute or percentage if RELATIVE
            Animation.ABSOLUTE,
            -30,                            // Change in x coordinate at end of animation, can be absolute or percentage if RELATIVE
            Animation.ABSOLUTE,             // Specifies Y-Type interpretation, ABSOLUTE, RELATIVE_TO_SELF, RELATIVE_TO_PARENT
            0.0f,                           // Change in y coordinate at start of animation, can be absolute or percentage if RELATIVE
            Animation.ABSOLUTE,
            30                              // Change in y coordinate at end of animation, can be absolute or percentage if RELATIVE
    );

mChildImageView.setAnimation(a);
mChildImageView.animate();

2 个答案:

答案 0 :(得分:1)

如果您想要更改视图的TranslationX或/和TranslationY参数与其父级相关,我强烈建议您使用Animators而不是Animations,因为它们有一些缺点(例如:Android - Animation Issue)。

可能的变体:

mChildImageView.animate().translationX(newTranslationX).translationY(newTranslationY).setDuration(duration).start();

答案 1 :(得分:0)

我想出来,为了让它移到左上角我们可以做以下

TranslateAnimation a = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT,            
        0.0f,                          
        Animation.RELATIVE_TO_PARENT,
        -20.0f,      // Translate to left - This is arbitrary enter your own value             
        Animation.RELATIVE_TO_PARENT,           
        0.0f,                           
        Animation.RELATIVE_TO_PARENT,
        -15.0f       // Translate up - This is arbitrary enter your own value                         
);

mChildImageView.setAnimation(a);
mChildImageView.animate();

RELATIVE_TO_PARENT使用的百分比为0.0f至1.0f