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"