【问题标题】:How to start animation contained with a custom layout如何启动包含自定义布局的动画
【发布时间】:2016-10-22 11:33:14
【问题描述】:

我正在尝试启动包含在自定义布局中的动画。此布局用于列表视图的每一行。如果移到此自定义布局之外,动画效果很好,因此问题似乎不在于图像/xml 文件。

我认为问题在于我如何调用动画。例如启动动画的标准代码(所以不使用自定义布局):

ImageView mImageViewEmptying = (ImageView) findViewById(R.id.tetherPulseAnimationTest);
((AnimationDrawable) mImageViewEmptying.getBackground()).start();

但是现在如果我想启动自定义布局中包含的动画,我会(以下可能是错误的!)将自定义布局膨胀到一个视图中,然后像以前一样做:

LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.custom_listview_activetethers, null);

ImageView mImageViewFilling = (ImageView) dialogView.findViewById(R.id.tetherPulseAnimation);
((AnimationDrawable) mImageViewFilling.getBackground()).start();

现在这肯定是错误的,因为它实际上并没有做任何事情。我可以在屏幕上看到动画的第一帧,但是上面的代码似乎没有启动它。有什么想法我哪里出错了吗?

【问题讨论】:

  • 使 ImageView 最终化..
  • 这是一般建议还是解决方案?无论哪种方式,它都不会使动画具有动画效果
  • 如果你使用 ImageView 作为 final..那么每个图像的动画效果都是一样的
  • 什么意思?如果我将第二个 sn-p 中使用的 ImageView 声明为 final,它的动画会有什么不同?

标签: android android-layout android-animation


【解决方案1】:

解决方案是创建一个自定义列表适配器类并覆盖 getView 以执行所需的方法。然后在包含listview的activity中,创建自定义列表适配器的ArrayAdapter。最后,将列表视图的适配器设置为 ArrayAdapter 对象。

现在可以通过自定义列表适配器类控制所有自定义功能,并且它将显示在活动的列表视图中。

【讨论】:

    猜你喜欢
    • 2012-10-11
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2013-04-21
    • 2017-08-09
    • 2017-03-04
    • 2016-01-31
    相关资源
    最近更新 更多