我正试图在onClick()中调用一个方法。方法takeScreenShot()需要参数(Activity活动)。我想要的截图的活动是MainActivity.java。当我点击按钮时,我收到一个空指针。我知道活动MainActivity必须进行初始化,但我不明白要使用什么除了将其设置为空。它说,在这条线上活动为null:初始化一个非空的活动
View view2 = activity.getWindow().getDecorView();
这就是所谓的一个onClick()像这样
public void onClick(View view) {
new Thread(new Runnable() {
public void run() {
Bitmap screenShot = takeScreenShot(MainActivity);
String filename = "my_screenshot.png";
savePic(screenShot, filename);
}
}).start();
}
我不明白如何声明和初始化
Activity MainActivity;
之前在onClick中使用的值不是null。如果我像这样离开它,它是空的。我如何初始化它,以及我可以设置它的选项=以使其不为空。
这里是takeScreenShot方法:
public static Bitmap takeScreenShot(Activity activity)
{
View view2 = activity.getWindow().getDecorView();
view2.setDrawingCacheEnabled(true);
view2.buildDrawingCache();
Bitmap b1 = view2.getDrawingCache();
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay().getHeight();
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);
view2.destroyDrawingCache();
return b;
}