Android截图应用程序 - 空指针异常

时间:2012-03-17 02:29:46

标签: android screenshot

我正在尝试测试代码以在android模拟器上截取屏幕截图。我有以下代码:

    View content = ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0);
    content.setDrawingCacheEnabled(true);
    Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());
    content.setDrawingCacheEnabled(false);

但是我在第551行的createBitmap中得到了空指针异常。

有人可以指出我做错了什么。

2 个答案:

答案 0 :(得分:1)

我认为您的问题可能来自您的观看内容:

View content = ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0);

您是否尝试删除getChildAt(0)或将其替换为getRootView()

另外,有一个很好的网站,如果它可以帮助你(第一个论坛页面上的最后一篇文章),那里有一个样本:

Capture Screen With Coding

告诉我你是否找到了解决方法。

答案 1 :(得分:0)

在某些情况下,您必须使用MeasureSpec。试试这个:

View content = ((ViewGroup)findViewById(android.R.id.content));
content.setDrawingCacheEnabled(true);
content.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
content.layout(0, 0, content.getMeasuredWidth(), content.getMeasuredHeight());
content.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());