Как сделать скриншот всей активности?
Работает следующий код. Как бы то ни было, он снимает с экрана только те элементы, которые видны пользователю, если приложение работает на небольшом экране и текстовое представление не отображается (необходимо прокрутить вверх или вниз), снимок экрана не будет показать текстовое представление. Как сделать снимок экрана всей активности независимо от размера экрана?
public Bitmap takeScreenshot() {
View rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
public void saveBitmap(Bitmap bitmap) {
File imagePath = new File(Environment.getExternalStorageDirectory() + "/groceryrun.png");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(Bitmap.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);
}
}
private void shareImage() {
Intent share = new Intent(Intent.ACTION_SEND);
// If you want to share a png image only, you can do:
// setType("image/png"); OR for jpeg: setType("image/jpeg");
share.setType("image/*");
// Make sure you put example png image named myImage.png in your
// directory
String imagePath = Environment.getExternalStorageDirectory()
+ "/groceryrun.png";
File imageFileToShare = new File(imagePath);
Uri uri = Uri.fromFile(imageFileToShare);
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share This Deal With Your Friends!"));
}
1 ответ
Это потому, что вы делаете снимок экрана View
кто просто ребенок пойти за родителем
Activity.getWindow().getDecorView()
сейчас назови свои коды.
дайте мне знать, если это работает