1

写真を撮影するためにimageViewでオーバーレイされたカメラビューを作成するモジュールを作成しました。私の問題は、「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」フォルダ?

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 に答える