2017-07-27 10 views
0

私はImageViewをデフォルトでalpha=0としています。そのため、別の画像には見えないオーバーレイとして機能します。イメージアニメーションを点滅させる方法は?

クリックすると、200msのオーバレイ画像を表示するアニメーションを作成してから、再び非表示にします。

以下は一般的に機能しますが、1回だけです!どうして?あなたは2つの異なるアルファ値を設定している

final ImageView flash = (ImageView) view.findViewById(R.id.flash); 

flash.animate() 
     .alpha(255) //make visible 
     .setDuration(200) 
     .setListener(new AnimatorListenerAdapter() { 
      @Override 
      public void onAnimationEnd(Animator animation) { 
       super.onAnimationEnd(animation); 
       flash.setImageAlpha(0); //hide again 
      } 
     }); 

答えて

3

、最初のものは表示のアルファですが、アニメーションを終了するときには0にImageViewのクラスのアルファを設定するので、あなたは再びアニメーションを開始した場合、ビューのアルファです1.0fですが、画像のアルファは0になり、何も見えません。

flash.animate() 
     .alpha(1.f) 
     .setDuration(200) 
     .setListener(new AnimatorListenerAdapter() { 
      @Override 
      public void onAnimationEnd(Animator animation) { 
       super.onAnimationEnd(animation); 
       flash.setAlpha(0.f); 
      } 
     }); 

Viewに変更し(したがってImageView)メソッドsetAlpha(float)があり、ImageView も、それは地獄のように混乱だから廃止されており、今ではsetImageAlpha(int)に名前が変更されています別の方法setAlpha(int)を追加します。アニメーションはViewsetAlpha(float)

+1

と呼びます。これは本当に非常に混乱しています。しかし、作品! – membersound

+1

Android xDをコーディングするときに、それが唯一の混乱したものだったと思う – lelloman

関連する問題