1

アセット フォルダー (welcome_image.jpg) に画像があります。そして、このコードを使用してアセットから読み取ります。

Bitmap bit = null;
String url = "/assets/welcome_image.jpg";
bit = BitmapFactory.decodeFile(url);

しかし、ビットはnullであり、次のようにエラーをスローします

03-26 16:42:15.303: D/Image exisits....(21547): Image url : /assets/welcome_image.jpg
03-26 16:44:39.853: E/BitmapFactory(21547): Unable to decode stream: java.io.FileNotFoundException: /assets/welcome_image.jpg: open failed: ENOENT (No such file or directory)

これを達成する方法を教えてください。

4

6 に答える 6

2

を使用してそのメソッドを使用AssetManagerして取得し、次にメソッドを使用してビットマップを取得できます。InputStreamopen()decodeStream()BitmapFactory

private Bitmap getBitmapFromAsset(String strName)
{
    AssetManager assetManager = getAssets();
    InputStream istr = null;
    try {
        istr = assetManager.open(strName);
    } catch (IOException e) {
        e.printStackTrace();
    }
    Bitmap bitmap = BitmapFactory.decodeStream(istr);
    return bitmap;
}
于 2013-03-26T11:24:22.027 に答える
0

次のパスを使用する必要があります。

Bitmap bit = null;
bit = BitmapFactory.decodeFile("file:///android_asset/welcome_image.jpg");
于 2013-03-26T11:23:06.083 に答える
0

このコードを確認してください

AssetManager assetManager = getAssets();
            InputStream istr;
            try {
                istr = assetManager.open("ceo.jpg");
                Bitmap bitmap = BitmapFactory.decodeStream(istr);
                imageView.setImageBitmap(bitmap);
                istr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
于 2013-03-26T11:24:30.400 に答える
0

以下のようにしてみてください。

 InputStream bitmap=null;
  try {
      bitmap=getAssets().open("welcome_image.jpg");
     Bitmap bit=BitmapFactory.decodeStream(bitmap);
    img.setImageBitmap(bit);
  } catch (IOException e) {
      e.printStackTrace();
} finally {
   if(bitmap!=null)
    bitmap.close();
  }
于 2013-03-26T11:24:38.603 に答える
0

これを試して:

   InputStream bitmap=null;

  try {
bitmap=getAssets().open("welcome_image.jpg");
Bitmap bit=BitmapFactory.decodeStream(bitmap);
img.setImageBitmap(bit);
} catch (IOException e) {
e.printStackTrace();
 } finally {
if(bitmap!=null)
bitmap.close();
  }
于 2013-03-26T11:24:54.497 に答える
0
AssetManager assetManager = getAssets();

    InputStream istr = assetManager.open(fileName);
    Bitmap bitmap = BitmapFactory.decodeStream(istr);
于 2013-03-26T11:26:36.863 に答える