Titanium中的Assets文件夹

时间:2011-06-30 14:44:57

标签: android appcelerator-mobile titanium-modules

我写了一个模块,创建了一个用imageView覆盖的cameraview来拍摄照片,我的问题是因为我无法将图像传递到“res”文件夹中,我需要将它放在“资源”中,纯粹java它一切正常,但我天堂不明白一旦我导出模块,在钛项目中放置“资产”文件的位置。 当我用IOException调用该方法时它会崩溃。 感谢

    FrameLayout fl = new FrameLayout(this);
    SurfaceView preview = new SurfaceView(this);
    ImageView footerCam = new ImageView(this);
    LinearLayout ll = new LinearLayout(this);

    LinearLayout.LayoutParams shareParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    footerCam.setLayoutParams(shareParams);
    ll.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);

    ll.addView(footerCam);
    fl.addView(preview);
    fl.addView(ll);

    setContentView(fl);
    camera = Camera.open();

    try 
    {
     AssetManager am = getAssets();
     BufferedInputStream buf = new BufferedInputStream(am.open("footer1.png"));
     Bitmap bitmap = BitmapFactory.decodeStream(buf);
     footerCam.setImageBitmap(bitmap);
     buf.close();
   }   
   catch (IOException e) 
   {
       Log.e("IMG","@@@@@@@@@@@@@@@@@@@@@@@ ERROR LOADING IMAGE");
       e.printStackTrace();
   }

这是我宣布按钮并从资产文件夹中为其分配图像的代码片段,但仅适用于android,当我部署模块并将其包含在钛中时,它属于IOException,我需要在哪里放置文件“footer1.png”或“assets”文件夹?

1 个答案:

答案 0 :(得分:0)

我用这种workround来管理它

int resID = getResources().getIdentifier("IMG.png", "drawable", "it.temp");
// or
int resID = getResources().getIdentifier("it.temp:drawable/icon",null,null);

button.setBackgroundResource(resID);// or whatever you need

但您必须将图像放在与源代码相同的包中。