3

私のほとんどの知識は、それが起こるべきではないと言っているので、なぜそれが起こっているのか混乱しています. 実際には、次のようなディレクトリ構造で、apkのAndroidアセットディレクトリにいくつかの画像が保存されています。

    Assets --> aphotos --> launch50 ---> launch501.jpg

たとえば、次のようにプログラムで画像を imageview ウィジェットに設定したい: -

    Uri uri =    Uri.parse("file:///android_asset/"+context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto);
    System.out.println("Image URI: "+uri.toString());       
    imageView.setImageURI(uri);

ここで、「fldr」と「introphoto」はデータベースから取得されます。これを行うと、「LogCat」に次のエラーが生成されます: -

11-22 19:23:46.689: W/ImageView(12990): Unable to open content: file:///android_asset/aphotos/launch50/launch501.jpg 11-22 19:23:46.689: W/ImageView(12990): java.io.FileNotFoundException: /android_asset/aphotos/launch50/launch501.jpg (No such file or directory) 11-22 19:23:46.689: W/ImageView(12990):   at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)

画像があるためになぜそれが起こっているのか、誰にもわかりますか?前もって感謝します!

4

2 に答える 2

0

この質問から、アセットファイルのURIを取得することは明らかにうまく機能していません。

私はあなたがストリームでそれをする必要があると思います:

    String path = context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto;
    InputStream is = getAssets().open(path);
    Bitmap bitmap = BitmapFactory.decodeStream(is);
    imageView.setImageBitmap(bitmap);
    is.close();
于 2012-11-22T15:06:10.850 に答える