应用于ImageView的TranslateAnimation留下了痕迹

Chi*_*ski 8 animation android imageview translate-animation

我最近一直在努力使用Android UI库提供的TranslateAnimation框架.

我设计了一个RelativeLayout,它有一个或多或少占用屏幕80%的GridView,以及屏幕底部的ImageView.后者它应该随着方向随意移动屏幕的底部.

这是布局:

<ImageView
    android:id="@+id/bottom_fish"
    android:layout_alignParentBottom="true"
    android:adjustViewBounds="true"
    android:cropToPadding="true"
    android:scaleType="centerInside"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:layout_marginBottom="40dp"
    android:layout_alignParentLeft="true"
    android:layout_weight="0"
    android:src="@drawable/little_fish_right"
></ImageView>

<GridView 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_above="@id/mouin_bottom"
    android:columnWidth="90dp"
    android:numColumns="4"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>
Run Code Online (Sandbox Code Playgroud)

这是TranslateAnimation:

TranslateAnimation slide = new TranslateAnimation(x0, newX, y0, newY);
slide.setFillAfter(true);
slide.setInterpolator(new LinearInterpolator());
slide.setDuration(duration);   
slide.setAnimationListener(animationListener);
iv.startAnimation(slide);

x0 += newX;
y0 += newY;
Run Code Online (Sandbox Code Playgroud)

分配给动画的AnimationListener只是在onAnimationEnd函数上调用此方法.

问题是,当图像从右向左移动时,它会在屏幕上留下位图痕迹,一段时间后会被删除.

知道可以解决问题的地方吗?

谢谢.

小智 0

我认为这是一个布局设计问题。尝试给予

android:layout_width="fill_parent" 
Run Code Online (Sandbox Code Playgroud)

代替

android:layout_width="wrap_content"
Run Code Online (Sandbox Code Playgroud)