0
実際に私は自分のアクティビティからスクリーンショットをキャプチャしようとしています。コードは現在のアクティビティのスクリーンショットを取りますが、ユーザーがボタンをクリックするとコードが画面のスクリーンショットを撮る必要があります。ここいくつかのタイムスロットの後に画面をキャプチャする方法は?
私のコードそうです:
@Override
public void run() {
try {
serverSocket = new ServerSocket(SocketServerPORT);
takeScreenshot();
for(int i=0;i<5;i++)
{
// Socket socket = serverSocket.accept();
takeScreenshot();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// FileTxThread fileTxThread = new FileTxThread(socket);
// fileTxThread.start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void takeScreenshot()
{
try {
// image naming and path to include sd card appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/sna/" + "screenyash"+i + ".jpg";
i++;
// create bitmap screen capture
View v1 = getWindow().getDecorView().getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
File imageFile = new File(mPath);
FileOutputStream outputStream = new FileOutputStream(imageFile);
int quality = 100;
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
outputStream.flush();
outputStream.close();
// openScreenshot(imageFile);
} catch (Throwable e) {
// Several error may come out with file handling or OOM
e.printStackTrace();
}
}