public static Bitmap shotScrollView(ScrollView scrollView) {
int h = 0;
Bitmap bitmap = null;
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();
scrollView.getChildAt(i).setBackgroundColor(Color.parseColor("#ffffff"));
}
Log.d("实际高度", "实际高度:" + h);
Log.d("实际高度", " 高度:" + scrollView.getHeight());
bitmap = Bitmap.createBitmap(scrollView.getWidth(), h, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
scrollView.draw(canvas);
return bitmap;
}
以上是网上流传的方法,但是我用超出屏幕的部分截屏出来会有黑色背景或者白色背景`
修改scrollView.draw(canvas);为scrollView.getChildAt(0).draw(canvas);即可
public static Bitmap shotScrollView(ScrollView scrollView) {
int h = 0;
Bitmap bitmap = null;
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();
scrollView.getChildAt(i).setBackgroundColor(Color.parseColor("#ffffff"));
}
Log.d("实际高度", "实际高度:" + h);
Log.d("实际高度", " 高度:" + scrollView.getHeight());
bitmap = Bitmap.createBitmap(scrollView.getWidth(), h, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
scrollView.getChildAt(0).draw(canvas);
return bitmap;
}