尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/65938021, 本文出自:【gengqiquan的博客】
领导最近觉得携程的截屏生成长图分享效果比较好,所以我们也加了个;产品觉得分享出去的长图需要加公司品牌水印,于是我们也加了个;嗯,事件起因就是这样。
长图一般是ScrollView和ListView。
我们需要取得这两个控件的完整显示的图片。原理很简单,搞一张和控件长宽一致的画布(就是创建一个高宽相等的bitmap)。然后调用控件的draw方法把自己画到画布上去。
分别贴出两个控件的长图获取方法
/**
* 截取scrollview的屏幕
**/
public static Bitmap getScrollViewBitmap(ScrollView scrollView) {
int h = 0;
Bitmap bitmap;
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();
}
// 创建对应大小的bitmap
bitmap = Bitmap.createBitmap(ScreenUtils.getScreenWidth(scrollView.getContext()), h,
Bitmap.Config.ARGB_4444);
final Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.parseColor("#f2f7fa"));
scrollView.draw(canvas);
return bitmap;
}
/**
* 截图listview
**/
public