1

我编写了一个模块,该模块创建了一个覆盖有 imageView 的 cameraview 来拍摄照片,我的问题是,由于我无法在“res”文件夹中传递图像,我需要将它放在“assets”中,在纯 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”文件夹?

4

1 回答 1

0

我用这种方法管理它

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

但是您必须将图像与源代码放在同一个包中。

于 2012-03-16T13:54:58.343 回答