2015-11-06 3 views
0

Я попытался захватить экран моего приложения,Снимки FullScreen, включая Statusbar?

public void takeSnap(View v) { 
    final View decorView = getWindow().getDecorView().getRootView(); 
    decorView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW); 
    decorView.setDrawingCacheEnabled(true); 
    decorView.buildDrawingCache(); 

    Bitmap img = decorView.getDrawingCache(); 

    ((ImageView) findViewById(R.id.snap)).setImageBitmap(img); 


    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 

      decorView.destroyDrawingCache(); 
      decorView.setDrawingCacheEnabled(false); 
     } 
    }, 400); 
} 

Проблема я столкнулся здесь, она занимает снимок, но не значок в строке состояния не видно! Я хочу, чтобы значок STATUSBAR также

after taking snapshot

+0

вам нужно иметь корневой доступ еще вы не можете включить строку состояния. –

+0

statusbar включить в decorView или нет? должен быть какой-то способ arround – smkrn110

ответ

0

Я думаю, что его в основном вопрос разрешения. Android использует то, что называется framebuffer для отображения видео.

Права на framebuffer файл rw- rw- ---. Обратите внимание, что последняя «группа» имеет 3 «-». Это в основном означает, что если вы не являетесь владельцем (который является root), у вас нет разрешения даже на чтение из этого файла.

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

Проверить в ответах на следующей ссылке: Why do we need a rooted phone for taking screenshots

+0

, так что любое другое решение? для некорневого устройства – smkrn110

+0

Насколько я знаю, я думаю, что ответ НЕТ. –

+0

ОК спасибо Кришна. – smkrn110

Смежные вопросы