动画端的Android setBackground不起作用

时间:2014-04-25 12:08:55

标签: android android-animation

我有一个GridView,每个项目都来自ImageViewΤextView,其可见性设置为INVISIBLE。

GridView为每个项目都有一个onClickListener。 OnItemClick我将TextView设置为可见并附加ClickListener。 然后,如果用户点击TextView,我将bakground设置为GRAY,我在自定义AsyncTask上执行某项任务,并且我使用动画,我想再次将视图设置为Invisible和bg颜色透明。

因为我需要在内部类方法(onAnimationEnd())中引用View,所以我将它分配给最终的var。 问题是,如果我连续第二次单击相同的视图,视图保持可见(不会通过onAnimationEnd())。

代码是:

 gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {


                child1 = getView().findViewById(position);
                child1.setVisibility(View.VISIBLE);

                child1.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    final View animView = v;
                    animView.setBackgroundColor(Color.GRAY);



                     SetWallpaperTask t = new SetWallpaperTask();
                     t.execute(res2);


                      AlphaAnimation fadeOutAnimation = new AlphaAnimation(1, 0); 
                      fadeOutAnimation.setDuration(4000);       // time for animation in milliseconds
                      fadeOutAnimation.setFillAfter(false);     // make the transformation persist
                      fadeOutAnimation.setAnimationListener(new AnimationListener() {         
                          @Override
                          public void onAnimationEnd(Animation animation) {

                              animView.setBackgroundColor(0x00000000);
                              animView.setVisibility(View.INVISIBLE);
                          }

                          @Override
                          public void onAnimationRepeat(Animation animation) { }

                          @Override
                          public void onAnimationStart(Animation animation) { }
                      });

                      animView.setAnimation(fadeOutAnimation);
                      animView.startAnimation(fadeOutAnimation);                         

                }

            });

         }
    });     

0 个答案:

没有答案