3

我需要在Android中截取整个屏幕,我已经搜索了很多但他们都在谈论截取指定视图的截图,我怎样才能截取整个屏幕?

我的意思是,通过程序。(不是通过 DDMS)

4

5 回答 5

1

有一个库可用于通过设备拍摄快照,称为ASL(Android 屏幕截图库)

在这里查看完整的源代码

于 2013-10-03T07:39:22.203 回答
0

在 Eclipse 中转到 DDMS 透视图并选择您的设备。然后点击屏幕截图(相机图片)按钮。

浏览此链接可能对您有所帮助...

于 2013-10-03T07:41:19.270 回答
0

您需要root您的设备,否则它将无法正常工作。您还必须让您的应用程序获得超级用户访问权限。只需实现此代码,您就可以开始了:

public void screenShot() throws InterruptedException
{
    Process sh;
    try
    {
        sh = Runtime.getRuntime().exec("su", null, null);
        OutputStream os = sh.getOutputStream();
        os.write(("/system/bin/screencap -p " + "/sdcard/Image.png").getBytes("ASCII"));
        os.flush();
        os.close();
        sh.waitFor();
    }
    catch (IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
于 2014-03-21T09:25:13.517 回答
-1

试试下面的代码:

// image naming and path  to include sd card  appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + ACCUWX.IMAGE_APPEND;   

// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

OutputStream fout = null;
imageFile = new File(mPath);

try {
fout = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

参考这个答案

于 2013-10-03T10:09:21.800 回答
-4

在 Eclipse 中,转到窗口 -> 显示视图 -> 其他 -> 设备

选择您的设备,然后只需单击“相机图片”:

在此处输入图像描述

于 2013-10-03T07:46:48.173 回答