android – ListView中使用ImageView startAnimation的奇怪效果

android – ListView中使用ImageView startAnimation的奇怪效果,第1张

概述经过几个月的到来之后,终于轮到我提交我的问题了: 我有一个带有自定义ArrayAdapter的ListView,它可以从互联网上加载图像(每行一个图像).我创建了一个ImageCache类,它在我的ArrayAdapter上调用onImageLoaded方法: public void onImageLoaded(Bitmap image, ImageView view){ view.set 经过几个月的到来之后,终于轮到我提交我的问题了:

我有一个带有自定义ArrayAdapter的ListVIEw,它可以从互联网上加载图像(每行一个图像).我创建了一个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的奇怪效果全部内容,希望文章能够帮你解决android – ListView中使用ImageView startAnimation的奇怪效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存