Сделать снимок всего экрана - PullRequest
2 голосов
/ 30 ноября 2011

Я видел много фрагментов кода для снятия скриншота, но не смог получить что-то, что делает скриншот всего экрана, а не просто вида. Он должен копировать способ, которым мы получаем скриншот, используя ddms.

Может кто-нибудь помочь?

Ответы [ 3 ]

3 голосов
/ 30 ноября 2011

Существует библиотека скриншотов Android, которая доступна здесь . На вики-страницах написано, что с помощью библиотеки можно делать снимки всего экрана без необходимости доступа к корневому уровню даже из неподписанного приложения. Я никогда не пробовал это все же. Вы можете использовать его в качестве отправной точки.

2 голосов
/ 14 апреля 2014
        sh = Runtime.getRuntime().exec("su", null, null);
        System.out.println("capturing");
        OutputStream outputstream = sh.getOutputStream();
        outputstream.write("/system/bin/screencap -p /sdcard/tos_processing.png".getBytes("ASCII"));
        outputstream.flush();
        outputstream.close();
        sh.waitFor();
        System.out.println("captured");
        bitmap = BitmapFactory.decodeFile("/sdcard/tos_processing.png");
0 голосов
/ 20 декабря 2011

Попробуй это у меня сработало ...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        view = (ImageView) findViewById(R.id.ImageView01);
        Button myBtn = (Button) findViewById(R.id.Button01);
        myBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                View v1 = view.getRootView();

                v1.setDrawingCacheEnabled(true);

                Bitmap bm = v1.getDrawingCache();
                BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);

                ImageView view2 = (ImageView) findViewById(R.id.ImageView01);

                view2.setBackgroundDrawable(bitmapDrawable);
            }
        });
}
...