我嘗試了下面的代碼,但當我運行它給出了一個黑色的屏幕圖像在Android手機和模擬器上它給出了一個文件,通過打開這個文件我得到的消息預覽不可用。Android:沒有根的屏幕捕獲
View v = activity.getWindow().getDecorView();
v.setDrawingCacheEnabled(true);
v.destroyDrawingCache();
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay().getHeight();
v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
v.layout(0, 0, width, height);
v.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false); // clear drawing cache
FileOutputStream fos = null;
File fTree = new File(sdCardRoot,"/fi.png");
fTree.createNewFile();
try {
fos = new FileOutputStream(fTree,true);
if (null != fos) {
b.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
請有人幫忙。謝謝。
你在Click事件或直接在OnCreate中這樣做()? –
直接在oncreate(); –
可能您在活動視圖還在的onCreate()不抽,測試放一個按鈕,並在它的點擊寫你的屏幕捕捉代碼。 – user370305