我正在为Unity3D开发Android Java插件。
我是我的Android项目,我有一个没有扩展Activity的类,但是我从Unity&中调用了一个函数。发送当前活动。
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 我不再扩展活动。 实际上即使我没有在 R.anim.slide_in_right 上得到任何编译时错误。 但是在运行时,找不到资源 R.anim.slide_in_right:0x7f040001 ..
有没有办法从资源文件夹加载我的动画。
Thankx。
答案 0 :(得分:1)
在这种情况下你可以使用getApplicationContext()..将你喜欢的代码改为
currAnimation_StartAd = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in_right);
这应该有用。
使用currAnimation_StartAd = AnimationUtils.loadAnimation(currActivity.getApplicationContext,R.anim.slide_in_right)通过gautam解释或更好地解释;答案 1 :(得分: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>
答案 2 :(得分: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