如何以编程方式截取活动(游戏)的屏幕截图

时间:2013-02-08 14:15:42

标签: android

我知道并非所有Android设备都可以拍摄屏幕截图,但我希望能够以编程方式拍摄我的用户游戏画面的屏幕截图,以便他们可以与朋友分享。有点喜欢Hill Climb racing在那里游戏。

有谁知道怎么做?我尝试了一些发布在这里的解决方案:

// 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();
}

但没有运气。还有其他办法吗?也许是一种新方法。

编辑:

我在行查看v1 = activity.getCurrentFocus()获取空指针.getRootView();

2 个答案:

答案 0 :(得分:0)

尝试这个我在这里拍摄当前布局的屏幕截图并保存在SD卡中......

To Capture Screen Shoot

答案 1 :(得分:0)

使用

  

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

取代

  

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

它不会抛出Null Pointer Exception。

享受!!