web-dev-qa-db-ja.com

Android-アルファフェードアニメーションを使用した画像の点滅

私はこれについて数日間苦労してきましたが、ついに質問することにしました。それはとても単純なので、非常に基本的なものを見逃す必要があります。

画像が定義されたXMLレイアウトページがあります。 2つのアニメーションXMLページがあり、1つはアルファを0から1に変更し、もう1つは「点滅」効果を作成するために1から0に変更します。したがって、alphaAnimationはXMLで定義されているので、呼び出す必要があります。

画像がポップアップしますが、点滅する点滅効果はありません。

public class blinker extends Activity {

   //create name of animation
Animation myFadeInAnimation;
Animation myFadeOutAnimation;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.scanning_view);

 //grab the imageview and load the animations
    ImageView myImageView = (ImageView) findViewById(R.id.blinkingView01); 
    Animation myFadeInAnimation = AnimationUtils.loadAnimation(null, R.anim.fade_in);
    Animation myFadeOutAnimation = AnimationUtils.loadAnimation(null, R.anim.fade_out);

//fade it in, and fade it out. 
    myImageView.startAnimation(myFadeInAnimation);
    myImageView.startAnimation(myFadeOutAnimation);
     }
}   

Animリソースの2つのXMLアニメーションレイアウト:

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:Android="http://schemas.Android.com/apk/res/Android"> 
    <alpha Android:fromAlpha="0.0" 
    Android:toAlpha="1.0" 
    Android:interpolator="@Android:anim/accelerate_interpolator"  
    Android:duration="50" Android:repeatCount="infinite"/> 
 </set> 

そしてもう一つ:

 <?xml version="1.0" encoding="UTF-8"?>
 <set xmlns:Android="http://schemas.Android.com/apk/res/Android"> 
    <alpha Android:fromAlpha="1.0" Android:toAlpha="0.0" 
    Android:interpolator="@Android:anim/accelerate_interpolator"  
    Android:duration="1000" Android:repeatCount="infinite"/> 
</set>
42
Keith

Android:repeatMode="reverse"を使用しない理由

30
methodin

フェードをトゥイーンする最良の方法:

ImageView myImageView = (ImageView) findViewById(R.id.imageView2); 
Animation myFadeInAnimation = AnimationUtils.loadAnimation(Splash.this, R.anim.tween);
myImageView.startAnimation(myFadeInAnimation);

あなたのres/anim /でtween.xmlを作成します。トゥイーン1は不透明度0から1を開始し、無限を逆にします...

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<alpha
    Android:fromAlpha="0.0"
    Android:toAlpha="1.0"
    Android:duration="1000" 
    Android:repeatMode="reverse"
    Android:repeatCount="infinite" />
</set>
97
Buchs sullivan

以下のアルファアニメーションを使用して、Androidのビューに点滅効果を設定できます。

blinkanimation= new AlphaAnimation(1, 0); // Change alpha from fully visible to invisible
blinkanimation.setDuration(300); // duration
blinkanimation.setInterpolator(new LinearInterpolator()); // do not alter animation rate
blinkanimation.setRepeatCount(3); // Repeat animation infinitely
blinkanimation.setRepeatMode(Animation.REVERSE);

この後、ビューにアニメーションを追加します。

view.setAnimation(blinkanimation); 

または

view.startAnimation(blinkanimation);
15
KarthikKPN

誰かがプログラムバージョンを使用することにした場合:

val anim = AlphaAnimation(1.0f, 0.0f)
anim.duration = 750
anim.fillAfter = true  

// here is repeat settings
anim.repeatMode = AlphaAnimation.REVERSE // ping pong mode
anim.repeatCount = 1 // count of repeats

yourView.startAnimation(anim)
3
Zakir