34

View最初は非表示で、ボタンを押すとフェードインアニメーションで表示されるようにしたい。AlphaAnimationフェード効果に使用しています。問題は、ビューを非表示にするとアニメーションが表示されないことです。

4

3 に答える 3

126

res\anim\ フォルダー内にImageView名前付きimageViewのアニメーション ファイルがあるとします。your_fade_in_anim.xml

ImageView imageView = (ImageView) findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
// Now Set your animation
imageView.startAnimation(fadeInAnimation);

あなたの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="[duration (in milliseconds)]"
        android:repeatCount="infinite" />
</set>

括弧を実際の期間に置き換えます。

于 2011-02-23T11:49:40.300 に答える
26

アニメーションにを提供AnimationListenerし、アニメーションが開始したらすぐにビューを表示します。

http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html

于 2011-02-23T11:37:56.623 に答える
3

無限の繰り返し回数とビューの非表示/表示の代わりに、アニメーションを繰り返さず、最初はアルファ チャネルを最大に設定して開始することをお勧めします。次に、次を使用できます。

<?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="[duration (in milliseconds)]"
        android:repeatCount="0" />
</set>

これで完了です。リスナー、非表示または表示は必要ありません。同じくらい簡単です。

于 2014-10-16T13:43:53.213 に答える