2

50+ PNGs are present in asset folder. Hierarchy: src-->main.

        AssetManager assetManager = getApplicationContext().getAssets();
        String[] files = null;
        try {
            files = assetManager.list("imgs");
        } catch (IOException e) {
            Log.e("tag", "Failed to get asset file list.", e);
        }
        if (files != null) for (String filename : files) {
            InputStream in = null;
            OutputStream out = null;
            try {

                        File file = new File(filename);


                in = assetManager.open(file.getPath());

                out = new FileOutputStream(f);
                copyFile(in, out);
            } catch (IOException e) {
                Log.e("tag", "Failed to copy asset file: " + filename, e);
            } finally {
                if (in != null) {
                    try {
                        in.close();
                    } catch (IOException e) {
                        // NOOP
                    }
                }
                if (out != null) {
                    try {
                        out.close();
                    } catch (IOException e) {
                        // NOOP
                    }
                }
            }
        }

Error:

java.io.FileNotFoundException: 505-tumbleweed-ani.gif
                                                                           at android.content.res.AssetManager.openAsset(Native Method)
                                                                           at android.content.res.AssetManager.open(AssetManager.java:347)
                                                                           at android.content.res.AssetManager.open(AssetManager.java:321)
                                                                           at com.example.android.softkeyboard.ImePreferences.copyAssets(ImePreferences.java:172)
                                                                           at com.example.android.softkeyboard.ImePreferences.onRequestPermissionsResult(ImePreferences.java:107)
                                                                           at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7069)
                                                                           at android.app.Activity.dispatchActivityResult(Activity.java:6921)
                                                                           at android.app.ActivityThread.deliverResults(ActivityThread.java:4049)
                                                                           at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096)
                                                                           at android.app.ActivityThread.-wrap20(ActivityThread.java)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:154)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:6077)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
1
  • Hi, Have u tried renaming assets. Rename hyphen with underscore. Commented Apr 3, 2017 at 13:03

1 Answer 1

2

Replace below line with

File file = new File(filename);

with below code:

You need to add File Path in below line

// load image
try {
    // get input stream
    InputStream inputstream= getAssets().open("imgs/"+filename);
    // load image as Drawable
    Drawable drawable = Drawable.createFromStream(inputstream, null);
    // set image to ImageView
    mImage.setImageDrawable(drawable );
}
catch(IOException ex) {
    return;
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.