0

我正在为 Unity3D 开发 Android Java 插件。

我是我的 Android 项目,我有一个不扩展 Activity 的类,但我从统一调用一个函数并在其中发送当前活动。

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);

在我扩展 Activity 时从res文件夹加载我的动画。

现在我的问题是,我无法访问res文件夹 bcoz我不再扩展 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);

这应该有效。

或者用 gautam 更好地解释 currAnimation_StartAd = AnimationUtils.loadAnimation(currActivity.getApplicationContext, R.anim.slide_in_right);

于 2012-07-18T07:30:04.573 回答
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 回答
0

您仍然可以通过 Application 获取 Context 对象来访问 res 文件夹。创建一个应用程序类:

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 回答