android 实现截取 内容超过屏幕大小的长图
分析:一般的控件不能超过内容屏幕长度的截图,这时候我们就要去寻找可以显示全的控件。
当内容已经超出了手机可显示的范围时,要截取这些所有的内容,从而生成所谓的”长截图”.
没什么难点,利用了webview的特点,和scrollview 的view的绘制,生成bitmap。
scrollView截图
/***
* scrollView截图
* @param scrollView
* @return
*/
public static Bitmap getBitmapByView(ScrollView scrollView) {
int h = 0;
Bitmap bitmap = null;
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();
scrollView.getChildAt(i).setBackgroundResource(R.mipmap.riding_report);
// scrollView.getChildAt(i).setBackgroundColor(
// Color.parseColor("0xFFFFFFFF"));
}
bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,
Bitmap.Config.RGB_565);
final Canvas canvas = new Canvas(bitmap);
scrollView.draw(canvas);
return bitmap;
}
webView截图
/***
* webView截图
* @param webView
* @return
*/
private static Bitmap captureWebView(WebView webView) {
Picture snapShot = webView.capturePicture();
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),
snapShot.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}