Я пытаюсь использовать метод для создания растрового изображения из макетов и сохранения растрового изображения в файл во внутренней памяти. Однако getApplicationContext() не разрешен.getApplicationContext() не может быть разрешен
Вот код для метода
private void generateAndSaveBitmap(View layout) {
//Generate bitmap
layout.setDrawingCacheEnabled(true);
layout.buildDrawingCache();
Bitmap imageToSave = layout.getDrawingCache();
//Create a file and path
ContextWrapper cw = new ContextWrapper(getApplicationContext());
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
File fileName = new File(directory, "sharableImage.jpg");
if (fileName.exists())
fileName.delete();
//Compress and save bitmap under the mentioned fileName
FileOutputStream fos = null;
try {
fos = new FileOutputStream(fileName);
imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// return directory.getAbsolutePath();
}
Used некоторой помощи от кодов StackOverflow для создания этого метода. Даже после чтения связанных запросов на getApplicationContext()
, я не могу найти проблему. Любая помощь будет очень ценна
EDIT: Забыл упомянуть, что метод generateAndSaveBitmap(View layout)
определяется в отдельный класс
С уважением
'getApplicationContext()' это метод в 'Context'. Является ли ваш класс «Контекстом» каким-то прямым или косвенным образом? –
при использовании buildDrawingCache(); вам также нужно уничтожить его после его использования. – user3802077
@ user3802077 спасибо за это. Добавлено в код – Traveller