Skip to content Skip to sidebar Skip to footer

Can't Load Image On Imageview From Uri

I'm trying to load an Image stored on the application files folder When i open the Activity I'm getting this error from logcat: 1-20 01:30:40.125 14331-14331/mx.eusaga.af W/ImageV

Solution 1:

Stringfolderpath="/data/data/" + getPackageName() + "/files";
 Stringimagefolderpath="/data/data/" + getPackageName() + "/files" +  "/images";

 FilefileFolder=newFile(folderpath);
        // check if file Folder exists, if not create one and its subfoldersif (!fileFolder.exists()) {
            fileFolder.mkdir();
        }

FileimageFolder=newFile(imagefolderpath);
        // check if image Folder exists, if not create one and its subfoldersif (!imageFolder.exists()) {
            imageFolder.mkdir();
        }

StringimageFilePath= imageFolder + "/test.jpg";

FileimagePath=newFile(imageFilePath);
if (!imageFolder.exists()) {
    Log.d("Log","Image not exists");
}

Solution 2:

Have you tried Picasso: http://square.github.io/picasso/? You can load image from a file with way less code.

Solution 3:

you have not added READ_EXTERNAL_STORAGE premission in manifest

<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>

for permission grant at runtime use following code.

publicfinalintREQUEST_CODE_ASK_MULTIPLE_PERMISSIONS=124;
    publicstaticfinalintNO_RESULT= -5;
    publicstaticfinalStringALERT_TITLE="Demo";

call method in onCreate()

    askMarshmallowPermissions();




>   privatevoidaskMarshmallowPermissions() {
>             List<String> permissionsNeeded = new ArrayList<String>();
>     
>             final List<String> permissionsList = new ArrayList<String>();
>     
>             if (!addPermission(permissionsList, android.Manifest.permission.WRITE_EXTERNAL_STORAGE))
>                 permissionsNeeded.add("Write to storage");
>     
>             if (permissionsList.size() > 0) {
>                 if (permissionsNeeded.size() > 0) {
>                     // Need Rationale
>                     String message = "You need to grant access to " + permissionsNeeded.get(0);
>                     for (int i = 1; i < permissionsNeeded.size(); i++)
>                         message = message + ", " + permissionsNeeded.get(i);
>                     showMessageOKCancel(message,
>                             new DialogInterface.OnClickListener() {
>                                 @Override
>                                 publicvoidonClick(DialogInterface dialog, int which) {
>                                     ActivityCompat.requestPermissions(MainActivity.this,
>                                             permissionsList.toArray(new String[permissionsList.size()]),
>                                             REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
>                                 }
>                             });
>                     return;
>                 }
>                 ActivityCompat.requestPermissions(MainActivity.this, permissionsList.toArray(new String[permissionsList.size()]),
>                         REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
>                 return;
>             }
>             callAfterPermission();
>         }
>     
>       
>       privatevoidcallAfterPermission() {
>           // your code after premission granted.
>       }



    private boolean addPermission(List<String> permissionsList, String permission) {
        if (ContextCompat.checkSelfPermission(MainActivity.this, permission) != PackageManager.PERMISSION_GRANTED) {
            permissionsList.add(permission);
            // Check for Rationale Optionif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission))
                    returnfalse;
            }
        }
        returntrue;
    }

    privatevoidshowMessageOKCancel(String message, DialogInterface.OnClickListener okListener) {
        new AlertDialog.Builder(MainActivity.this)
                .setMessage(message)
                .setPositiveButton("OK", okListener)
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    publicvoidonClick(DialogInterface dialog, int which) {
                        showAlertDialogWithFinishActivity(MainActivity.this,
                                "01 - Please grant all required permissions to " +
                                        "continue running the app. Please Restart the App and allow Permissions.",
                                ALERT_TITLE, true, NO_RESULT, null);
                    }
                })
                .create()
                .show();
    }

  @Override
    publicvoidonRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS: {
                Map<String, Integer> perms = new HashMap<String, Integer>();
                // Initial
                perms.put(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, PackageManager.PERMISSION_GRANTED);
                perms.put(android.Manifest.permission.READ_EXTERNAL_STORAGE, PackageManager.PERMISSION_GRANTED);

                // Fill with resultsfor (int i = 0; i < permissions.length; i++)
                    perms.put(permissions[i], grantResults[i]);
                // Check for ACCESS_FINE_LOCATIONif (perms.get(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
                        && perms.get(android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {

                    callAfterPermission();
                } else {

                    showAlertDialogWithFinishActivity(MainActivity.this,
                            "02 - Please grant all required permissions to " +
                                    "continue running the app. Please restart the app and allow permissions.",
                            ALERT_TITLE, true, NO_RESULT, null);
                }
            }
            break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

Post a Comment for "Can't Load Image On Imageview From Uri"