Я хочу сохранить растровое изображение в кеш-каталог. Я использую этот код:Как я могу сохранить растровое изображение правильно во второй раз?
try {
File file_d = new File(dir+"screenshot.jpg");
@SuppressWarnings("unused")
boolean deleted = file_d.delete();
} catch (Exception e) {
// TODO: handle exception
}
imagePath = new File(dir+"screenshot.jpg");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
он с работает нормально. Но если я хочу сохранить разные img на один и тот же путь, что-то пойдет не так. Я имею в виду, что он сохраняется на том же пути, но я вижу это старое изображение, но когда я нажимаю на изображение, я могу видеть правильное изображение, которое я сохранил во второй раз.
Возможно, он исходит из кеша, но я не хочу видеть старое изображение, потому что, когда я хочу поделиться этим изображением с увиденным старым изображением whatsapp, если я отправлю изображение, оно кажется правильным.
Я хочу поделиться сохраненное изображение на WhatsApp, как этот код:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(imagePath));
shareIntent.setType("image/jpeg");
startActivityForResult(Intent.createChooser(shareIntent, getResources().getText(R.string.title_share)),whtsapp_result);
Как я могу это исправить?
благодарит заранее.
Лучшая практика при сохранении нового изображения сначала очистить предыдущее изображение (такое же имя изображения) из каталога. –
Я удаляю предыдущее изображение, как вы можете видеть в моем коде, он не работает? –
проверьте значение 'deleted'. Если изображение удалено, оно никогда не вернется. –