单击时,Android会随着ImageView淡出

单击时,Android会随着ImageView淡出,android,animation,imageview,onclicklistener,Android,Animation,Imageview,Onclicklistener,我想在服务类中创建ImageView。我想在用户点击时淡出我的图像。我尝试以下代码: ImageView chatHead = new ImageView(this); chatHead.setImageResource(R.drawable.battery_20); final Animation fadeOut = new AlphaAnimation(1, 0); fadeOut.setInterpolator(new Acc

我想在服务类中创建ImageView。我想在用户点击时淡出我的图像。我尝试以下代码:

        ImageView chatHead = new ImageView(this);
        chatHead.setImageResource(R.drawable.battery_20);
        final Animation fadeOut = new AlphaAnimation(1, 0);
        fadeOut.setInterpolator(new AccelerateInterpolator());
        fadeOut.setStartOffset(50);
        fadeOut.setDuration(3000);

        fadeOut.setAnimationListener(new Animation.AnimationListener()
        {
            public void onAnimationEnd(Animation animation)
            {
                chatHead.setVisibility(View.GONE);
            }
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationStart(Animation animation) {}
        });

        chatHead.setAnimation(fadeOut);

        chatHead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chatHead.setVisibility(View.INVISIBLE);

  }
        });
当我点击ImageView的图像时,它立即消失

 chatHead.setVisibility(View.INVISIBLE);
您需要在上线后开始动画

fadeOut.start();

您需要在上线后开始动画

fadeOut.start();


这是因为您正在调用
setVisibility(View.INVISIBLE)单击Listener

重新定义
OnClickListener
方法,如下所示:

chatHead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fadeOutAndHideImage(chatHead);
            }
        });
定义衰减和隐藏图像方法:

private void fadeOutAndHideImage(final ImageView img)
  {
    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator());
    fadeOut.setDuration(1000);

    fadeOut.setAnimationListener(new AnimationListener()
    {
            public void onAnimationEnd(Animation animation) 
            {
                  img.setVisibility(View.GONE);
            }
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationStart(Animation animation) {}
    });

    img.startAnimation(fadeOut);
}

请参阅以获取参考。

这是因为您正在调用
setVisibility(View.INVISIBLE)单击Listener

重新定义
OnClickListener
方法,如下所示:

chatHead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fadeOutAndHideImage(chatHead);
            }
        });
定义衰减和隐藏图像方法:

private void fadeOutAndHideImage(final ImageView img)
  {
    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator());
    fadeOut.setDuration(1000);

    fadeOut.setAnimationListener(new AnimationListener()
    {
            public void onAnimationEnd(Animation animation) 
            {
                  img.setVisibility(View.GONE);
            }
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationStart(Animation animation) {}
    });

    img.startAnimation(fadeOut);
}

请参阅以供参考。

image not disapear never:(不知道??image not disapear never:(不知道??为什么要在单击按钮时隐藏图像?
chatHead.setVisibility(View.VISIBLE);
为什么不
chatHead.setVisibility(View.VISIBLE)
sry我不明白你的问题!当你单击图像时,你正在将其设置为不可见模式,然后开始动画。
chatHead.setVisibility(View.invisible);
删除该部分,然后你可以看到淡出按钮单击按钮时为什么要隐藏图像?
chatHead.setVisibility(View.INVISIBLE);
为什么不
chatHead.setVisibility(View.VISIBLE);
sry我不明白你的问题!当你点击图像时,你正在将其设置为不可见模式,然后开始动画。
chatHead.setVisibility(View.INVISIBLE);
移除该部分,你就能看到淡出