1

Приведенный ниже код работает. Однако для этого требуется только скриншот того, какие элементы доступны пользователю, если приложение работает на маленьком экране и текстовое изображение не отображается (нужно прокручивать вверх или вниз), снимок экрана не будет отображаться текст. Как сделать снимок экрана всей активности независимо от экрана?Как сделать снимок экрана всей активности?

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() 

Теперь позвоните в ваши коды.

дайте мне знать, если он будет работать

+0

Я не понимаю, что код. getWindow дает ошибку –

+0

какая ошибка? активность. существует 'yourActivity.getWindow(). getDecorView()' @ChadPrecilla – Elltz