2016-01-14 4 views
3

я делать скриншоты в моем приложении с помощью:Как захватить снимок экрана с помощью тени с помощью getDrawingCache?

private Bitmap takeScreenshot() { 
    View rootView = findViewById(android.R.id.content).getRootView(); 
    rootView.setDrawingCacheEnabled(true); 
    return rootView.getDrawingCache(); 
} 

Это работает отлично, за исключением, что результат не содержит никакой тени. Как я могу захватить тени приподнятых объектов?

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

Пожалуйста, ответьте.

Спасибо.

+0

Не уверен, что он подходит вашему делу, но API> 21 имеет «MediaProjection», что позволяет снимать скриншоты/записывать видео. https://github.com/googlesamples/android-ScreenCapture – InTwoMinds

+0

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

ответ

0

Я использовал UiDevice.takeScreenshot(File) от UIAutomator.

Вы можете попробовать: it's way. Он использует UiAutomation, который доступен только с API 18.

+0

Используется ли для скриншотов с помощью компьютера? Я хочу сделать скриншоты и представить пользователю во время выполнения. – Usman

+0

Нет, это делает скриншот самого устройства. –

+0

Можете ли вы, пожалуйста, направить меня больше? Я попытался найти его, но не могу понять, что мне делать. Я пробовал UiAutomation.takeScreenshot(); но он дает ошибку: «takeScreenshot» не может ссылаться на статический контекст – Usman

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