Пакет Media Projection - это новый Lollipop и позволяет приложению захватывать экран устройства в реальном времени для потоковой передачи на видео. Я надеялся, что это также можно использовать для захвата одного скриншота, но до сих пор я не был успешным. Конечно, первый кадр захваченного видео может работать, но я нацелен на идеальный, без потерь скриншот, соответствующий пиксельному разрешению устройства. По-прежнему из захваченного видео не может этого гарантировать.Как сделать снимок экрана программно с Lollipop
Я пробовал много вещей, но ближе всего я пришел к решению, чтобы сначала запустить invisible activity. Затем эта активность следует за API example для начала захвата экрана, который может включать в себя запрос пользователя. После включения захвата экрана изображение в реальном времени отображается в SurfaceView. Однако я не могу найти способ захватить растровое изображение из SurfaceView. Есть много questions и discussions об этом, но никакие решения не работают, и есть некоторые доказательства того, что это impossible.
Любые идеи?
был бы скриншот приложения - минус в строке состояния достаточно хорошо? –
@BojanKseneman Да, но имейте в виду, что это должно быть способно скриншоты что-либо на устройстве (за исключением защищенных поверхностей) - не только мое приложение. – pents90
Вы видели https://github.com/mtsahakis/MediaProjectionDemo/blob/master/src/com/mtsahakis/mediaprojectiondemo/ScreenCaptureImageActivity.java? – shkschneider