2015-10-01 81 views
0

我正在动画ImageView以反映太阳升起的iOS应用程序中的功能。如果我从容器RelativeLayout下面启动它,它会将我的ImageView高度缩小到marginTop和RelativeView底部之间的差异(在这种情况下,图像显示为100dp而不是290)。它显示了在预览中以及在设备上的行为。此外它不会将图像剪裁到相对布局。我该如何更好地制作动画?Android ImageView正在缩小,如果我将其从屏幕上移开

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="400dp" 
    android:background="@drawable/home_back_morning" 
    android:id="@+id/rlTop" 
    android:clipChildren="true" 
    > 
    <ImageView 
     android:layout_width="290dp" 
     android:layout_height="290dp" 
     android:minHeight="290dp" 
     android:minWidth="290dp"  
     android:src="@drawable/sun" 
     android:id="@+id/ivSun" 
     android:layout_marginLeft="-150dp" 
     android:layout_marginTop="300dp" 
     android:scaleType="centerInside" 
     android:cropToPadding="true">  
</RelativeLayout> 

//Fragment: 
    TranslateAnimation translation; 
    translation = new TranslateAnimation(0f, 0F, 0f, -250f); 
    translation.setStartOffset(1000); 
    translation.setDuration(1000); 
    translation.setFillAfter(true); 
    translation.setInterpolator(new BounceInterpolator()); 
    ivSun.startAnimation(translation); 

回答

1

你的代码在模拟器中工作正常。
但再试一次改变你的RelativeLayout到的FrameLayout,如:

<FrameLayout 
    android:id="@+id/rlTop" 
    android:layout_width="match_parent" 
    android:layout_height="400dp" 
    android:background="@drawable/home_back_morning" 
    android:clipChildren="true"> 

    <ImageView 
     android:id="@+id/ivSun" 
     android:layout_width="290dp" 
     android:layout_height="290dp" 
     android:layout_marginLeft="-150dp" 
     android:layout_marginTop="300dp" 
     android:cropToPadding="true" 
     android:minHeight="290dp" 
     android:minWidth="290dp" 
     android:scaleType="centerInside" 
     android:src="@drawable/sun"/> 
</FrameLayout> 
+0

啊,那会工作,但有很多更多的东西在布局中,我只贴出相关的代码,我会做一些清理。 – fizgig

相关问题