Здесь есть несколько вопросов по поводу захвата скриншотов приложения для Android. Однако я не нашел твердого решения о том, как сделать скриншот программно с помощью SDK android SDK или любым другим способом.
Итак, я подумал, что снова задам этот вопрос в надежде, что смогу найти хорошее решение, надеюсь, тот, который позволит захватывать полноразмерные изображения, которые я могу сохранить на SD-карте или где-то в другом месте.
Я использую любую помощь
Это невозможно непосредственно на устройстве/эмуляторе, если оно не внедрено.
честно, все, что мне нужно, это эмулятор, как это для тестового приложения на ПК.
Это звучит как работа для monkeyrunner.
Инструмент monkeyrunner может выполнить задание для вас с помощью команды adb, [python script]
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
//waits for connection
device = MonkeyRunner.waitForConnection()
//take the current snapshot
device.takeSnapshot()
//stores the current snapshot in current dir in pc
device.writeToFile('current.png')\
//copy it to the sd card of device
os.subprocess.call('adb push current.png /sdcard/android/com.test.myapp/current.png')
Примечание: вызовите этот файл jython script
monkeyrunner.bat < имя файла >
Вы можете посмотреть http://codaset.com/jens-riboe/droidatscreen/wiki (с записью на http://blog.ribomation.com/2010/01/droidscreen/): это библиотека Java, которая использует adb
для захвата снимков экрана. Я смог (с большим количеством смазки локтя) изменить источник, чтобы позволить мне автоматически записывать временные серии снимков экрана (которые я использую для демонстрационных видеороликов).
Вы можете увидеть структуру класса в http://pastebin.com/hX5rQsSR
РЕДАКТИРОВАТЬ: вы бы вызвали его (после комплектации всех требований) следующим образом:
java -cp DroidScreen.jar --adb "--device" "--prefix" " --interval
Скорее всего, вы не будете удовлетворены этим ответом, но единственные, что я видел, включают использование собственного кода или выполнение собственных команд.
Изменить: Я этого раньше не видел. Ты это пробовал?: http://code.google.com/p/android-screenshot-library/
Edit2: проверено, что библиотека, и это также плохое решение. Требуется, чтобы вы запустили службу с компьютера. Поэтому мой первоначальный ответ по-прежнему сохраняется:)
Edit3: вы должны иметь возможность сохранять представление в виде изображения, делая что-то похожее на это. Возможно, вам придется немного подкрутить его, чтобы получить ширину/высоту представления. (Я раздуваю макеты и задаю ширину/высоту, когда я компоную код)
View content = getView();
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
File file = new File(pathAndFilename);
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, ostream);
ostream.close();