新建一个类ShareImage.class
setImage(Activity activity);方法将一个Activity对象传入,然后通过View mView = activity.getLayoutInflater().inflate(R.layout.layout_share_view, null);将写好的布局进行加载,得到mView,mView就是所需要分享的视图。
最关键的地方在于这个视图可能是动态变化的,需要我们进行宽度和高度重新测量。
/**
* 创建分享Bitmap
*/
private BitmapcreateBitmap() {
//自定义ViewGroup,一定要手动调用测量,布局的方法
mView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
mView.layout(0, 0, mView.getMeasuredWidth(), mView.getMeasuredHeight());
//如果图片对透明度无要求,可以设置为RGB_565
Bitmap bitmap = Bitmap.createBitmap(mView.getWidth(), mView.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas =new Canvas(bitmap);
mView.draw(canvas);
return bitmap;
}
网友评论