0

TextView のスケールとフェードアウトを作成しようとしています。私の TextView は、アクティビティのレイアウトに含まれるレイアウト ファイル内にあります。

<include android:id="@+id/hud" layout="@layout/hud" android:layout_alignParentBottom="true"/>

これで、次のように Java コード内からスケール アニメーションを適用できます。

TextView multiplier = (TextView)findViewById(R.id.hudMultiplier);
ScaleAnimation s = new ScaleAnimation(1.0f, 3.0f, 1.0f,3.0f);
s.setDuration(5000);
multiplier.startAnimation(s);

それはうまく機能しますが、xml ファイルからそのアニメーション (およびその他のアニメーション) が必要です。だから私はこのファイルを作りました:

<?xml version="1.0" encoding="utf-8"?>
<set 
    xmlns:android="http://shemas.android.com/apk/res/android" 
    android:shareInterpolator="false">
    <scale
        android:pivotX="50%"
        android:pivotY="100%"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:toXScale="10.0"
        android:toYScale="10.0"
        android:duration="5000"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    />
    <alpha 
        android:fromAlpha="1.0"
        android:toAlpha="0.1"
        android:duration="2000"
        android:startOffset="2000">
    </alpha>
</set>

このコードでアニメーションを適用しようとしています:

TextView multiplier = (TextView)findViewById(R.id.hudMultiplier);
AnimationSet an = (AnimationSet) AnimationUtils.loadAnimation(getApplicationContext(), R.anim.multiplier);
multiplier.startAnimation(an);

ここで何が起こるかというと、TextView がほんの一瞬点滅し、実際には何も起こりません。

私はもう試した:

  • アルファ アニメーションの削除 - 変更なし
  • 開始オフセットの削除 - 変更なし
  • アンドロイドのドキュメントからアニメーションを変更します - 変更はありません
  • AnimationSet を Animation に変更 - 変更なし
  • getApplicationContext() を this、MyActivity.this に変更 - 変更なし
  • getApplicationContext() を null に変更 - アプリケーションを強制終了します

私は何が欠けていますか?

このプロジェクトは Android 1.6 を対象としており、2.3 エミュレーターでテストしています。

4

2 に答える 2

2

This seems to make a difference, for me anyway!

Change shemas to schemas in the Set element.

    <?xml version="1.0" encoding="utf-8"?>
<set 
    xmlns:android="http://shemas.android.com/apk/res/android" 
    android:shareInterpolator="false">
于 2011-03-31T09:51:51.600 に答える
0

これを試して:

an = AnimationUtils.loadAnimation(this, android.R.anim.fade_out);
于 2011-03-31T10:13:04.017 に答える