您的位置:首页 > 其它

如何在后台线程中将View内容保存成图像

2015-04-29 19:37 375 查看
private class GetBitmapRunnable implements Runnable {
View mView = null;
Config mConfig = null;

public GetBitmapRunnable(View view, Config config) {
this.mView = view;
this.mConfig = config;
}

public void run() {
if (mView == null)
return;

try {
mBitmap = Bitmap.createBitmap(mView.getWidth(), mView
.getHeight(), mConfig == null ? Config.RGB_565
: mConfig);
Canvas canvas = new Canvas(mBitmap);
canvas.drawColor(Color.WHITE);
mView.draw(canvas);
} catch (Throwable throwable) {
if (mBitmap != null) {
mBitmap.recycle();
}
throwable.printStackTrace();
}
}

public Bitmap mBitmap;
}

private Bitmap getBitmap(View v, Config config) {
GetBitmapRunnable runnable = new GetBitmapRunnable(v, config);
getActivity().runOnUiThread(runnable);// 目的是确保runnable运行在UI线程,可以用其他方法
return runnable.mBitmap;
}


getBitmap 函数中 getActivity().runOnUiThread 可以替换成其他工具方法,目的是runnable 可以运行在主线程
然后就可以在任何线程里将view变换成图片了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: