大家好,我會盡可能地澄清....我有一種方法,在其中我得到我的應用程序的屏幕,我真正想要的是能夠使用我的方法從其他應用程序或Android桌面獲取屏幕。我嘗試執行此操作的方式是在捕獲屏幕之前,將我的Layout變爲INVISIBLE,但如果捕獲我的應用程序完美,但我想捕捉其他應用程序,任何想法? ......我告訴你我的方法..捕獲屏幕安卓系統,但不是我的應用程序
公共無效addListenerOnButton4(){
Button btnTakeScreenshot = (Button) findViewById(R.id.share);
btnTakeScreenshot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
takeScreenshot();
}
});
}
public void takeScreenshot() {
RelativeLayout ln = (RelativeLayout) findViewById(R.id.Layout);
ln.setBackgroundColor(Color.TRANSPARENT);
Date now = new Date();
android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now);
try {
// image naming and path to include sd card appending name you choose for file
String mPath = (Environment
.getExternalStoragePublicDirectory(Environment
.DIRECTORY_DOWNLOADS) +File.separator+now+"ScreenShoot.jpg");
// create bitmap screen capture
View v1 = getWindow().getDecorView().getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
File imageFile = new File(mPath);
FileOutputStream outputStream = new FileOutputStream(imageFile);
int quality = 100;
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
outputStream.flush();
outputStream.close();
} catch (Throwable e) {
// Several error may come out with file handling or OOM
e.printStackTrace();
}
}
在Android 5.0+上,您可以使用媒體投影API來執行此操作。請參閱[本示例應用程序](https://github.com/commonsguy/cw-omnibus/tree/master/MediaProjection/andshooter)。在此之前,除了可能在根植設備上或通過使用開發工具,不支持其他應用程序的屏幕截圖。 – CommonsWare