Сохраняю картинку с галереи в папку приложения при этом создаю в ней директорию. При попытке загрузить картинку по Url функция BitmapFactory.decodeStream() возвращает null.
Функция сохранения
private String saveImageToInternalStorage(Bitmap bitmapImage){
ContextWrapper cw = new ContextWrapper(ProfileFragment.this.getActivity());
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
File carImagePath=new File(directory,"carImage.jpg");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(carImagePath);
// Use the compress method on the BitMap object to write image to the OutputStream
bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
return carImagePath.getAbsolutePath();
}
Функция загрузки
private Bitmap loadImageFromStorage(String path)
{
if (path == null)
return null;
try {
File f = new File(path, "carImage.jpg");
Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
return b;
}
catch (FileNotFoundException e)
{
e.printStackTrace();
return null;
}
}
Сохранение выполняется в отдельном потоке, принимая на вход BitMap, путь к картинке сохраняется в sharedpreferences.
class SaveImageTask extends AsyncTask<Bitmap, Void, String> {
@Override
protected String doInBackground(Bitmap... param)
{
return saveImageToInternalStorage(param[0]);
}
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
SharedPreferences sharedPrefLogin = ProfileFragment.this.getActivity().getSharedPreferences("TaxiPoltavaDriverLogin", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPrefLogin.edit();
editor.putString("carImage",result);
editor.commit();
}
}