gpt4 book ai didi

android - ListView 中 ImageView startAnimation 的奇怪效果

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:19 24 4
gpt4 key购买 nike

时不时来这里几个月后,终于轮到我提交问题了:

我有一个带有自定义 ArrayAdapter 的 ListView,它从 Internet 加载图像(每行一个图像)。我制作了一个 ImageCache 类,它在我的 ArrayAdapter 上调用一个 onImageLoaded 方法:

public void onImageLoaded(Bitmap image, ImageView view){
view.setImageBitmap(image);
Utils.log("start animation : " + view.toString());
view.startAnimation(mAnim);
}

问题是每次在一个 ImageView 上调用 startAnimation(假设是 fadeIn)时,动画似乎在当前正在动画的所有 ImageView-s 上从头开始重新运行,导致几个(或所有)图像奇怪地闪烁滚动时。

Utils.log 说 startAnimation 被正常调用(即,ListView 中出现的每个新 ImageView 只调用一次)。

我的动画 XML 的内容是这样的:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:shareInterpolator="true">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" android:duration="400"/>
</set>

有人遇到过这种情况吗?你能看出我做错了什么吗?

谢谢!

最佳答案

问题是加载动画并存储它而不是每次都创建一个新动画引起的。

解决方案示例:

public void onImageLoaded(Bitmap image, ImageView view){    view.setImageBitmap(image);    Animation fadeInAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in);    view.startAnimation(fadeInAnimation);}

注意这行代码对上述方法的依赖:

Animation fadeInAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in);

关于android - ListView 中 ImageView startAnimation 的奇怪效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6732998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com