1

我知道并非所有 Android 设备都可以截屏,但我希望能够以编程方式截取我的用户游戏屏幕的屏幕截图,以便他们可以与朋友等分享。有点像爬山赛车在游戏中所做的。

有谁知道如何做到这一点?我尝试了一些在这里发布的解决方案:

// 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 = activity.getCurrentFocus().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();
}

但没有运气。还有其他方法可以做到这一点吗?也许是一种新方法。

编辑:

我在 View v1 = activity.getCurrentFocus().getRootView(); 行得到一个空指针

4

2 回答 2

0

试试这个在这个我截取当前布局的屏幕截图并保存在 sdcard 中......

捕捉屏幕截图

于 2013-12-23T06:50:15.987 回答
0

利用

查看 v1 = getWindow().getDecorView().getRootView();

代替

查看 v1 = activity.getCurrentFocus().getRootView();

它不会抛出空指针异常。

享受!!

于 2014-09-29T09:53:34.490 回答