怎么给Scrollview里内容截屏并生成bit地图,注意:Scrollview里面内容较多有滚动了·

如何给Scrollview里内容截屏并生成bitmap,注意:Scrollview里面内容较多有滚动了·

          好多天没写博客了,就把这段时间遇到的问题写出来吧。

如何对Scrollview进行截屏,这种需求一般是作为分享截屏时需要的·,查了很多方法,开始是和我前面写的对webview截屏的方法做参考,后来发现完全不合要求,毕竟Scrollview是布局不是View控件。

          废话不多说,见核心部分:主要是计算当前scrollview的总高度,超过手机屏幕的高度了。

使用for循环递归累加其内部的子控件的高度:

private ScrollView scrollView;
scrollView = (ScrollView) findViewById(R.id.scrollview);
int h = 0;
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();}
Bitmap bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,
					Bitmap.Config.ARGB_8888);
			// Bitmap bitmap = scrollView.getDrawingCache(true);
			final Canvas c = new Canvas(bitmap);
		
			scrollView.draw(c);

			ByteArrayOutputStream stream = new ByteArrayOutputStream();
			bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
			final byte[] picture = stream.toByteArray();
if (bitmap != null && !bitmap.isRecycled()) {
bitmap = null;// 把原来的 bitmap.recycle().改成这个
			}

代码如上即可给Scrollview进行截屏并转换为bitmap,和byte[]数组,你可以根据自己需要选择使用·········