经过大量研究后,我发现在显示对话框时截屏的解决方案:
new AlertDialog.Builder(MyActivity.this)
.setTitle("Title ...")
.setMessage("Message ...")
.setPositiveButton("Okay", null)
.setNegativeButton("Screenshot", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
View displayView = AlertDialog.class.cast(dialog).getWindow().getDecorView().getRootView();
displayView.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(displayView.getDrawingCache());
displayView.setDrawingCacheEnabled(false);
// ... processing the bitmap
}
})
.show();
然而,这种方法的问题是屏幕截图上的对话框被屏幕大小的黑色背景所包围,我想这是他的rootView。
如何从对话框中获取屏幕截图 ,或者换句话说 - 如何引用其视图?