android - 应用于 ImageView 的 TranslateAnimation 留下痕迹

标签 android animation imageview translate-animation

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

我设计了一个 RelativeLayout,它有一个 GridView 或多或少占据了屏幕的 80%,还有一个 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"
/>

这是 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;

分配给动画的 AnimationListener 只是在 onAnimationEnd 函数上调用这个方法。

问题在于,当图像从右向左移动时,它最终会在屏幕上留下位图痕迹,并在一段时间后被移除。

知道问题出在哪里吗?

谢谢。

最佳答案

调用 iv.startAnimation(slide) 后,您可能需要对 View 的父级调用 invalidate()。我以前遇到过这个问题。我假设您之前已经解决了这个问题,但希望这对其他人有所帮助。

关于android - 应用于 ImageView 的 TranslateAnimation 留下痕迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562090/

相关文章:

java - SqLite 到 Mysql 和 PHP,无需 Json。

jquery - 使用 jQuery 对列表项进行动画处理

animation - D3.js - 嵌套对象的动画退出

javascript - 使用javascript减少背景位置css

Android 在RelativeLayout 前面设置ImageView

android - 使用 VideoView 在 android 中显示动画 Gif 图像

android - 将 ImageView 放在 TextView 旁边

php - Android 从 php 获取 json 数据显示错误....!

android - 实现 Drm Dash 媒体源时发生 DecoderInitializationException

android - 如何将 appium 与机器人框架集成?