Мне нужно сделать снимок экрана, который я кодировал на экране результатов моей игры.NullPointerException при попытке сделать снимок экрана программно
Я использовал следующий метод, который я нашел в StackOverflow:
public void TakeScreenShot(){
Date now = new Date();
android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now);
try {
String mPath = Environment.getExternalStorageDirectory().toString() + "/PICTURES/Screenshots/" + now + ".jpg";
v1 = this.findViewById(android.R.id.content).getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
File imageFile = new File(mPath);
FileOutputStream outputStream = new FileOutputStream(imageFile);
int quality = 100;
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
outputStream.flush();
outputStream.close();
Toast.makeText(this, "Screenshot OK", Toast.LENGTH_SHORT).show();
} catch (Throwable e) {
e.printStackTrace();
}
}
, но я получаю NullPointerException
в Bitmap.CreateBitmap
.
Мои растровые изображения и представления являются глобальными, и я пытаюсь вызвать метод в OnCreate
.
11-04 15: 20: 17,868 13569-13569/com.finger W/System.err: java.lang.NullPointerException
Как я могу решить эту проблему?
Я НАЙДЕНО РЕШЕНИЕ!
Я пытаюсь вызвать метод takeScreenshot в OnCreate и всегда я получил тот же результат все разные вариации, но я стараюсь метод вызова в «Share Button» нажмите событие, теперь его работу. Спасибо.
'v1' или' v1.getDrawingCache() 'будет' null'. Проверьте перед использованием. Или вы ошибаетесь в фактической строке кода. – greenapps
Привет @greenapps, я проверяю, если statment и мой v1.getDrwaingCache возвращают null каждый раз, но я получил тот же результат. К сожалению, –