如何在自定义列表视图中启动动画

拉苏尔(Rasul Ebrahimzadeh)

我有一个习惯listview,包括imageviewtextview我想要,当我单击imageview按钮时,开始animation(rotate)我的问题是:滚动时,动画停止了。

public class AdapterFoodGroups extends BaseAdapter {

   private static LayoutInflater mInflater = null;

   Context context;
   int[] foodImagesId;
   String[] foodNameList;
   String[] foodDescriptions;
   int[] foodTimes;

   boolean[] loadAnimation;

   public AdapterFoodGroups(Context context, String[] foodNameList, String[] foodDescriptions, int[] foodTimes, int[] foodImagesId) {
      // TODO Auto-generated constructor stub
      this.foodNameList = foodNameList;
      this.foodDescriptions = foodDescriptions;
      this.foodTimes = foodTimes;
      this.foodImagesId = foodImagesId;
      this.context = context;

      loadAnimation = new boolean[foodNameList.length];
      for (boolean b: loadAnimation) {
         b = false;
      }
   }

   @Override
   public View getView(final int position, View convertView, ViewGroup parent) {
      // TODO Auto-generated method stub

      final ViewHolder viewHolder;

      final RotateAnimation anim = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5 f, Animation.RELATIVE_TO_SELF, 0.5 f);
      anim.setInterpolator(new LinearInterpolator());
      anim.setRepeatCount(Animation.INFINITE);
      anim.setDuration(800);

      if (convertView == null) {

         mInflater = (LayoutInflater) context.
         getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         convertView = mInflater.inflate(R.layout.adapter_foodgroup, null);

         viewHolder = new ViewHolder();

         viewHolder.txtFoodName = (TextView) convertView.findViewById(R.id.txtFoodNameGrid);
         viewHolder.txtFoodDescription = (TextView) convertView.findViewById(R.id.txtFoodDescriptionGrid);
         viewHolder.txtFoodTime = (TextView) convertView.findViewById(R.id.txtFoodTimeGrid);
         viewHolder.ivFoodImage = (CircularImageView) convertView.findViewById(R.id.ivFoodImageGrid);
         viewHolder.ivLoad = (ImageView) convertView.findViewById(R.id.ivLoad);

         convertView.setTag(viewHolder);
      } else {
         viewHolder = (ViewHolder) convertView.getTag();
      }

      if (this.foodImagesId[position] != 0) {
         viewHolder.ivFoodImage.setImageResource(this.foodImagesId[position]);
         viewHolder.ivFoodImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               Toast.makeText(context, String.valueOf(position) + " = " + foodNameList[position], Toast.LENGTH_LONG).show();
            }
         });
      }
      if (this.foodNameList[position] != null) {
         viewHolder.txtFoodName.setText(this.foodNameList[position]);
      }
      if (this.foodDescriptions[position] != null) {
         viewHolder.txtFoodDescription.setText(this.foodDescriptions[position]);
      }
      if (this.foodTimes[position] != 0) {
         viewHolder.txtFoodTime.setText(String.valueOf(this.foodTimes[position]) + " دقیقه");
      }

      viewHolder.ivLoad.setImageResource(R.drawable.load);
      viewHolder.ivLoad.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            viewHolder.ivLoad.setAnimation(anim);
            viewHolder.ivLoad.startAnimation(anim);
         }
      });

      return convertView;
   }

   @Override
   public int getCount() {
      // TODO Auto-generated method stub
      return foodNameList.length;
   }

   @Override
   public Object getItem(int position) {
      // TODO Auto-generated method stub
      return position;
   }

   @Override
   public long getItemId(int position) {
      // TODO Auto-generated method stub
      return position;
   }

   public static class ViewHolder {
      public CircularImageView ivFoodImage;
      public ImageView ivLoad;
      public TextView txtFoodName;
      public TextView txtFoodDescription;
      public TextView txtFoodTime;
   }
}
伊万·伊万诺夫(Ivan Ivanov)

试试这个:

在您的适配器构造函数中,更改以下行:

....
loadAnimation = new boolean[foodNameList.length];
        for (int i=0; i < loadAnimation.length; i++) {
            loadAnimation[i] = false;
        }
....

getView()方法中添加以下内容:

...

            viewHolder.ivLoad.setImageResource(R.drawable.load);

            if(loadAnimation[position]){
                viewHolder.ivLoad.setAnimation(anim);
                viewHolder.ivLoad.startAnimation(anim);
            } else {
                viewHolder.ivLoad.setAnimation(null);
            }

            viewHolder.ivLoad.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    viewHolder.ivLoad.setAnimation(anim);
                    viewHolder.ivLoad.startAnimation(anim);
                    loadAnimation[position] = true;

                }
            });

...

希望能帮助到你!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在自定义列表视图中对项目单击启动不同的活动?

来自分类Dev

如何在列表视图中滚动动画?

来自分类Dev

Android-如何在此列表视图中使用自定义列表视图

来自分类Dev

如何使用我自己的自定义启动动画来编译AOSP项目?

来自分类Dev

如何使用我自己的自定义启动动画来编译AOSP项目?

来自分类Dev

Android:如何在自定义列表视图中添加列标题

来自分类Dev

如何在自定义列表视图中添加静态标题图片?

来自分类Dev

如何在Android的自定义列表视图中ser读取未读消息

来自分类Dev

如何在长的自定义列表视图中滚动时跟踪项目的位置

来自分类Dev

如何在自定义列表视图中添加静态标题图片?

来自分类Dev

如何在使用Volley创建的自定义列表视图中删除html标签

来自分类Dev

如何在具有透明背景的自定义列表视图中显示图像

来自分类Dev

如何在自定义列表视图中共享外部图像?

来自分类Dev

如何在ui视图中显示自定义指令?

来自分类Dev

如何在ui视图中显示自定义指令?

来自分类Dev

自定义列表视图中的 InflateException

来自分类Dev

如何在自定义视图中向多数据添加自定义数组?

来自分类Dev

如何在自定义视图中向多数据添加自定义数组?

来自分类Dev

如何在Android中过滤自定义列表视图

来自分类Dev

如何在Android中具有多个选择的自定义列表视图中获取选中的项目ID

来自分类Dev

如何在自定义列表视图中获取特定交换机的ID并进行检查

来自分类Dev

如何在列表视图中获取带有子数据的主节点以自定义采用者

来自分类Dev

如果我们连续有很多文本视图,如何在自定义列表视图中单击该文本视图时更改文本视图的文本?

来自分类Dev

在滑动动画上使用容器视图创建自定义标签栏

来自分类Dev

如何在另一个自定义视图中添加自定义视图?

来自分类Dev

列表视图中的页脚按钮,如何从自定义列表适配器获取价值

来自分类Dev

如何在视图或ds视图中包括自定义代码字段?

来自分类Dev

如何在滚动视图中重新加载自定义视图?

来自分类Dev

如何在我的自定义视图中显示 One2many 字段的视图?

Related 相关文章

  1. 1

    如何在自定义列表视图中对项目单击启动不同的活动?

  2. 2

    如何在列表视图中滚动动画?

  3. 3

    Android-如何在此列表视图中使用自定义列表视图

  4. 4

    如何使用我自己的自定义启动动画来编译AOSP项目?

  5. 5

    如何使用我自己的自定义启动动画来编译AOSP项目?

  6. 6

    Android:如何在自定义列表视图中添加列标题

  7. 7

    如何在自定义列表视图中添加静态标题图片?

  8. 8

    如何在Android的自定义列表视图中ser读取未读消息

  9. 9

    如何在长的自定义列表视图中滚动时跟踪项目的位置

  10. 10

    如何在自定义列表视图中添加静态标题图片?

  11. 11

    如何在使用Volley创建的自定义列表视图中删除html标签

  12. 12

    如何在具有透明背景的自定义列表视图中显示图像

  13. 13

    如何在自定义列表视图中共享外部图像?

  14. 14

    如何在ui视图中显示自定义指令?

  15. 15

    如何在ui视图中显示自定义指令?

  16. 16

    自定义列表视图中的 InflateException

  17. 17

    如何在自定义视图中向多数据添加自定义数组?

  18. 18

    如何在自定义视图中向多数据添加自定义数组?

  19. 19

    如何在Android中过滤自定义列表视图

  20. 20

    如何在Android中具有多个选择的自定义列表视图中获取选中的项目ID

  21. 21

    如何在自定义列表视图中获取特定交换机的ID并进行检查

  22. 22

    如何在列表视图中获取带有子数据的主节点以自定义采用者

  23. 23

    如果我们连续有很多文本视图,如何在自定义列表视图中单击该文本视图时更改文本视图的文本?

  24. 24

    在滑动动画上使用容器视图创建自定义标签栏

  25. 25

    如何在另一个自定义视图中添加自定义视图?

  26. 26

    列表视图中的页脚按钮,如何从自定义列表适配器获取价值

  27. 27

    如何在视图或ds视图中包括自定义代码字段?

  28. 28

    如何在滚动视图中重新加载自定义视图?

  29. 29

    如何在我的自定义视图中显示 One2many 字段的视图?

热门标签

归档