0

私は Unity3D 用の Android Java プラグインに取り組んでいます。

私のAndroidプロジェクトには、アクティビティを拡張していないクラスがありますが、ユニティから関数を呼び出して現在のアクティビティを送信しています。

public class abc{    
  void init(final Activity currActivity, .. and some other params)
  {
    .....
    my code here.//
    .... .
  }    
}

使っていました

currAnimation_StartAd = AnimationUtils.loadAnimation(currActivity, R.anim.slide_in_right);

アクティビティを拡張していたときにresフォルダーからアニメーションをロードします。

今私の問題は、resフォルダー bcoz im にアクセスできず、これ以上 Activity を拡張できないことです。実際、R.anim.slide_in_rightでコンパイル時エラーが発生していません。しかし、実行時に Resource R.anim.slide_in_right: 0x7f040001 not found..

アセット フォルダーからアニメーションを読み込む方法はありますか?

ありがとう。

4

3 に答える 3

1

その場合は getApplicationContext() を使用できます。好きなコードを次のように変更します

currAnimation_StartAd =  AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in_right);

これはうまくいくはずです。

または currAnimation_StartAd = AnimationUtils.loadAnimation(currActivity.getApplicationContext, R.anim.slide_in_right); を使用して gautam でより適切に説明します。

于 2012-07-18T07:30:04.573 に答える
0

アプリケーションによって res フォルダーにアクセスするための Context オブジェクトを引き続き取得できます。アプリケーション クラスを作成します。

public class app extends Application{
    public static Context c;
    @Override
    public void onCreate() {
        super.onCreate();
        c = this;
    }
    @Override
    public void onTerminate() {
        super.onTerminate();
        c = null;
    }
}

マニフェストでも宣言することを忘れないでください。そして今、あなたはどこでもコンテキストを持つことができます

app.context
于 2012-07-18T09:37:49.660 に答える
0

任意のビューにアニメーションを設定するには:

view.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_up_in));
view.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_up_out));

このためには、プロジェクトの res の下に anim フォルダーを作成し、次のように xml ファイルを作成する必要があります: push_up_in:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="300"/>
        <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

push_up_out:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="300"/>
        <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
于 2012-07-18T07:14:54.667 に答える