最近个人在做一个android的APP应用,涉及到了后台截取当前屏幕的需求,如果只是在自己应用里面截取大家应该都知道如何做,关键就在于后台跨进程截取其他APP当前运行的画面遇到了问题。
本人研究了一周左右的时间终于找到了一套相对而言比较可行的方案。
在这里需要感谢 李博Garvin文章参考了他的部分代码,这位牛人也是在这方面花了不少精力。
当然,我只是初学android开发,如果里面有不正确的言论还请大家及时指出。
截取自身Activity的界面(这里只是大概的贴出了主要的功能代码,详细的自己去网上找,多的是)
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.view.View;
public class ScreenShot {
private static Bitmap takeScreenShot(Activity activity) {
// View是你需要截图的View
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap b1 = view.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()