Android View截屏长图拼接(RecyclerView)
Android View截屏长图拼接(NestedScrollView)
方法一:通过系统方法获取图片Bitmap实现分享(Deprecated)
@Deprecated
public static Bitmap loadBitmapFromView(View view) {
Bitmap drawingCache;
if (true){
view.setDrawingCacheEnabled(true);
drawingCache = view.getDrawingCache();
}else {
view.buildDrawingCache();
drawingCache = view.getDrawingCache();
}
return drawingCache;
}
通过查看系统getDrawingCache()方法,发现此方法标记过时,而且getDrawingCache()可能获取Bitmap对象为空,所以我们推荐采用方法二方式来获取View的Bitmap。
方法二:通过Canvas来获取View的Bitmap
public static Bitmap loadBitmapFromViewByCanvas(View view) {
int w = view.getWidth();
int h = view.getHeight();
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);
Canvas c = new Canvas(bitmap);
//如果不设置canvas画布为白色,则生成透明
c.drawColor(Color.WHITE);
view.layout(0, 0, w, h);
view.draw(c);
return bitmap;
}