2012-01-30 7 views
4

ページがロードされるとフェードインするイメージがあります。ただし、アニメーションに設定されている画像の最終的なアルファは保持されません。イメージフェードインは最終的なアルファを保持しません

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha 
    android:fromAlpha="0.0" 
    android:toAlpha="0.6" 
    android:duration="2000"/> 
    </set> 

そして、最終的に画像ロードするコード:

<ImageView 
    android:id="@+id/myImage" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:cropToPadding="true" 
    android:scaleType="centerCrop" 
    android:background="#ffffff" /> 

は、その後、私は、画像にフェードインアニメーションファイルを持っている:私は私のイメージのために、以下の(簡単な)XMLを持っています

body =(ImageView)findViewById(R.id.myImage); 
    body.setBackgroundDrawable(new BitmapDrawable(this.getResources(), background)); 
    Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein_bg); 
    body.startAnimation(myFadeInAnimation); 

アニメーションが完了した後も画像の最終的なアルファを残すにはどうすればよいですか?あなたが背景描画可能に設定した場合

おかげ

答えて

1

body.setImageDrawable()の代わりにbody.setBackgroundDrawable()を使用していたようです。もちろん、まだそこにsetAlpha()を追加する必要があります。

1

は、あなたが最終的にアニメーションしているアルファ値を保持すべきImageViewのsetAlpha(float)のアルファを設定してみてください。

+0

私はそれを試してみたが、それはまだ動作しませんでした。私はbody.setAlpha(20)を追加しました。アニメーションの前には、アニメーションの最後にはまだフルカラーになっていました。 – Nick

4

てみてください、あなたはこのようなアニメーションを開始する前に.setFillAfter()メソッドの呼び出しを追加:

myFadeInAnimation.setFillAfter(true); 
body.startAnimation(myFadeInAnimation); 
+1

は完璧に機能しました!ありがとう – jdrefahl

関連する問題