AnimationDrawable frameAnim=(AnimationDrawable)mContext.getResources().getDrawable(R.drawable.yellow_red_rent); finalHolder1.cardBg.setBackgroundDrawable(frameAnim); frameAnim.start(); AnimationDrawable frameAnim2=(AnimationDrawable)mContext.getResources().getDrawable(R.drawable.yellow_red_dian); finalHolder1.r_light.setBackgroundDrawable(frameAnim2); frameAnim2.start();
在卡片列表适配器中写了如上代码,发现只有frameAnim2执行了,frameAnim不执行,反正没看到它的动画效果,后来试着在子线程中写:
new Thread(new Runnable() {
@Override
public void run() {
AnimationDrawable frameAnim=(AnimationDrawable)mContext.getResources().getDrawable(R.drawable.yellow_red_rent);
finalHolder1.cardBg.setBackgroundDrawable(frameAnim);//若不设置此帧动画xml资源,因拖动实时使用的是图片资源,拖动某卡牌后再点击对应的喜欢/讨厌按钮,会类型转换报错!
frameAnim.start();
AnimationDrawable frameAnim2=(AnimationDrawable)mContext.getResources().getDrawable(R.drawable.yellow_red_dian);
finalHolder1.r_light.setBackgroundDrawable(frameAnim2);//若不设置此帧动画xml资源,因拖动实时使用的是图片资源,拖动某卡牌后再点击对应的喜欢/讨厌按钮,会类型转换报错!
frameAnim2.start();
}
}).start();
结果二个帧动画就都执行了,莫名其妙。。。。。。
解决帧动画执行问题
本文探讨了在卡片列表适配器中实现帧动画时遇到的问题,即部分动画无法正常执行。通过将动画代码放置在子线程中运行,成功解决了所有帧动画的执行问题。
1882

被折叠的 条评论
为什么被折叠?



