在钛模块中使用R.drawable for android

时间:2013-09-05 19:38:03

标签: titanium titanium-modules

我正在尝试创建一个模块(android的本机服务),以便我的appcelerator应用程序可以启动本机服务。该服务运行正常,它创建了一个relativeLayout system_overlay我能够设置relativeLayout的背景颜色,但最终我想设置它的backgroundImage。我有一个png,我想用于名为bg_noti

的背景

我试图在我的本机服务类(在模块项目中)这样做:

String bg_name ="android.R.drawble.bg_noti";
        try {
            notificationBar.setBackgroundResource(TiRHelper.getApplicationResource(bg_name));
        } catch (ResourceNotFoundException e) {
            // TODO Auto-generated catch block
            Log.v(":::::::::::", "EXCEPTION:"+e);
            e.printStackTrace();
        }

我的理解是我需要将png放在Titanium app项目的某个地方,但无论我把它放在哪里,它似乎都没有进入已编译的应用程序..

我总是得到没有找到资源的例外。

我正在关注此处的示例:http://developer.appcelerator.com/question/49671/android-r-references-in-appcelerator-module

但是他们说将图片放在$ APP_DIR / platform / android / res目录中并且不存在..我尝试创建它......但仍然没有工作..

有人可以告诉我实际上我想将这个图像放在钛金属应用程序项目中,以便模块可以参考它。

1 个答案:

答案 0 :(得分:0)

您使用getApplicationResource方法,但需要Android资源。您应该尝试使用getAndroidResource方法:

String bg_name = "drawble.bg_noti";
try {
    notificationBar.setBackgroundResource(TiRHelper.getAndroidResource(bg_name));
} catch (ResourceNotFoundException e) {
    …
}

您还应该将bg_nameandroid.R.drawable.bg_noti更改为drawble.bg_noti)。