我正試圖在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;
}