• Stars
    star
    718
  • Rank 63,070 (Top 2 %)
  • Language
    Java
  • License
    MIT License
  • Created about 10 years ago
  • Updated over 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Make Android screenshots of scrollable screen content

scrollscreenshot

Make Android screenshots of scrollable screen content - brought to you by PGS Software SA

This tool makes a number of screenshots, scrolling screen content automatically between each shot. By default status bar and navigation bar are included only once.

Illustration how images are merged

Documentation:

Usage: com.pgssoft.scrollscreenshot.ScrollScreenShot [options]
  Options:
    -c, --count
       Number of screenshot to take
       Default: 5
    -v, --device
       Device ID, first device is used if not specified (i.e. "4df1902336814fa6"
       or "192.168.56.102:5555")
    -d, --direction
       Swipe direction: topdown (default), leftright (implies "--stitch none")
       Default: topdown
    -h, --help
       Display this help
       Default: false
    -e, --inertia
       Inertia of content, how many pixels are required to start dragging. Use
       non-zero value if there are duplicated stripes.
       Default: 0
  * -i, --inputdevice
       Digitizer input device number, N in /dev/input/eventN
       Default: 1
    -n, --nameprefix
       Output filename prefix
       Default: out
    -p, --pathsdk
       Path to Android SDK
    -s, --stitch
       Stitch mode: full (smooth stitch), none (merged full screenshots),
       separate (separate files)
       Default: full

How to use

You need to know digitizer device input number, which is specific to every device and ROM.

Use command

adb shell getevent -l

and move finger on screen. You will see something like

/dev/input/event2: EV_SYN       SYN_REPORT           00000000
/dev/input/event2: EV_ABS       ABS_MT_WIDTH_MAJOR   00000014
/dev/input/event2: EV_ABS       ABS_MT_POSITION_X    00000247
/dev/input/event2: EV_ABS       ABS_MT_POSITION_Y    0000030c
/dev/input/event2: EV_ABS       ABS_MT_TOUCH_MAJOR   0000001a
/dev/input/event2: EV_ABS       ABS_MT_TOUCH_MINOR   0000000e
/dev/input/event2: EV_ABS       003c                 ffffffb3

In your case device you are looking for has number 2.

You can now start screen capturing. Download latest scrollscreenshot binary, unlock screen, start app you want to scroll-capture and type (replace 2 by your device input number):

java -cp scrollscreenshot-latest.jar com.pgssoft.scrollscreenshot.ScrollScreenShot -i 2

If eveything goes well, you will get file out.png with something like:

SAMPLE

Left-to-right mode will give you something like this:

SAMPLE

Todo:

  • scrolling in all 4 directions
  • automatic detection of scroll area edge

Changelog

  • 0.1 - initial release, only top-down scrolling for first device found by ADB
  • 0.2 - scrolling top-down and left-right, stitch now works in smooth/none/separate modes, ADB device can be choosen by id
  • 0.3 - fixed NPE when using separate stitch mode

Acknowledgments

Android Arsenal

License

scrollscreenshot for Android

Copyright (c) 2014 PGS Software SA

https://github.com/PGSSoft/scrollscreenshot

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

3DSnakeAR

Well known game Snake written in Swift using ARKit.
Swift
478
star
2

ParallaxView

tvOS controls and extensions that add parallax effect to your application.
Swift
474
star
3

AutoMate

Swift framework containing a set of helpful XCTest extensions for writing UI automation tests
Swift
285
star
4

AndroidSDKPoster

Wall poster with detailed changelog of Android SDK versions 14-27, broken down into 30 categories
278
star
5

PuzzleMaker

Swift framework responsible for generating puzzles from the image
Swift
125
star
6

InAppPurchaseButton

A simple and customisable in-app purchase button, written in Swift.
Swift
92
star
7

ramlo

Documentation generator for RAML 1.0
HTML
64
star
8

AutoMate-AppBuddy

iOS UI automation tests helper framework, designed to work with the AutoMate
Swift
30
star
9

gimBUS

Event bus for Android with fine-grained delivery thread control
Java
22
star
10

AutoMate-Templates

Xcode templates helps to start with new UI tests utilizing Page Object pattern and AutoMate framework
Ruby
19
star
11

HttpClientMock

Library for mocking Java 11 HttpClient.
Java
19
star
12

vozilla

R
17
star
13

terraform-provider-mssql

MS SQL Terraform provider
Go
17
star
14

AutoMate-ModelGenie

Generates localized texts for privacy alerts, languages and countries settings for AutoMate framework
Swift
17
star
15

MessagesView

view for displaying messages similarly to messages iOS system app
Swift
16
star
16

GoldenRose

A tool for generating reports from Xcode results bundle
Ruby
16
star
17

ElasticOM

Elasticsearch Object Mapper for PHP 7
PHP
14
star
18

Pgs.CrossPlatform.FormattedText

Cross Platform C# Xamarin Formatted Text Label control enabling to add own tags [b][/b] or similar to HTML tags <b><b><H1></H2> to format text in any size and font
C#
13
star
19

php-docker-skeleton

Dockerized PHP enviroment. This repository is a docker boilerplate for web apps written in PHP.
Shell
12
star
20

HashId

Replace your integer url params in Symfony applications and hide under unpredictable strings.
PHP
12
star
21

XamarinTrackMe-Mobile

Track My Location WHAT: a simple one-click app to share your location: on-line, in a real time, active for 4 hours HOW: generate a link in your mobile app, share info of your current location with anyone you want via: e-mail, sms, Facebook, NFC, Messenger, communicators or any other way. You can stop sharing your location and create a new link any time. WHAT FOR: track your fleet, cargo, partner online, allow customers to track shipments or let your friends find you easily, while at concert or a big party in real time.
C#
12
star
22

PrestigeModel

Gamestate library for Prestige mobile game, similar to card game Splendor
Java
10
star
23

danger-ios_logs

Danger plugin to detect any NSLog/print entries left in the code
Ruby
9
star
24

uglyfier

Gradle script for downsizing Android resources in debug builds
8
star
25

espresso-doppio

Espresso doppio - toys that makes Espresso based ui tests easier
Java
7
star
26

PgsRestfonyBundle

Bundle to assist with creating classes for Doctrine Entity with aim to speed up creating Restful APIs
PHP
6
star
27

pgs-blog

PGS blog extras
HTML
6
star
28

java-spring-course-pwr-2017

Java/Spring course organized on Wrocław Uniwersity of Technology by PGS Software in Spring 2017.
Java
5
star
29

AndroidMvvmTemplates

FreeMarker
5
star
30

TrackMe-Backend

Asp.Net Single Page that display Map user location by its token + SignalR notification for mobile app
JavaScript
4
star
31

ForgetAdapters

An Android library, which (extremely) simplifies seeding lists with data
Java
2
star
32

Nancy.ProblemDetails

Unified error responses for Nancy 1.x (RFC7807)
C#
2
star
33

.net-course-pwr-2017

C#
2
star
34

gulp-recipe-browsersync-server

Receipe for serving files with autoreload
JavaScript
2
star
35

AndroidMVVM

Java
1
star
36

gulp-angular-sample-project

A sample project with gulp-recipe-loader using angular framework.
JavaScript
1
star
37

gulp-sample-project

A sample project using gulp recipes
JavaScript
1
star
38

angular-redux-example

JavaScript
1
star
39

gulp-recipe-loader

Automatic gulp recipe loading and task registration
JavaScript
1
star