我希望能在后台线程上截取屏幕。因此,我使用一个线程来完成这项工作,就像这样:
private void captureScreen(final Context context) {
new Thread(){
@Override
public void run() {
View view = ((Activity) context).findViewById(android.R.id.content);
Bitmap bmp = Bitmap.createBitmap(view.getWidth(), view.getHeight(),
Bitmap.Config.ARGB_8888);
if (null != bmp) {
view.draw(new Canvas(bmp));
stack.push(bmp);
}
}
}.start();
}
大部分时间没有问题,但有时会崩溃,原因是“只有原始线程可以触摸它”,在其他线程上运行view.draw()是正确的做法,或者您有更好的方法来在后台线程上捕获屏幕吗?