我有一个带有自定义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的奇怪效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)