我需要捕获当前屏幕的屏幕截图,所以我采用了下面的代码
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
LinearLayout v = (LinearLayout) findViewById(R.id.mainLayout);
v.setDrawingCacheEnabled(true);
// this is the important code :)
// Without it the view will have a
// dimension of 0,0 and the bitmap will
// be null
v.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED));
//v.layout(0,v.getMeasuredWidth(),v.getMeasuredHeight());
v.layout(0,v.getWidth(),v.getHeight());
v.buildDrawingCache(true);
Bitmap bm = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false); //
if (bm != null) {
try {
String path = Environment.getExternalStorageDirectory()
.toString();
OutputStream fOut = null;
File file = new File(path,"screentest.jpg");
fOut = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG,85,fOut);
fOut.flush();
fOut.close();
Log.e("ImagePath","Image Path : "
+ MediaStore.Images.Media.insertImage(
getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
这段代码对我来说很好,但我需要在屏幕加载完成后捕获屏幕.
我也尝试了onPostCReate(),但一切都是徒劳的..
我也尝试在onPause()方法中调用代码,但由于动画,屏幕从右侧和底部部分进行了一些调整…所以我甚至不能去…
现在轮到你分享你的专业知识了..
任何建议都非常感谢!!!!