本文实例为大家分享了Android截取指定View为图片的具体代码,供大家参考,具体内容如下
这个功能是为了截取指定的View为图片,然后分享到微信以及朋友圈使用的!
如图所示,我需要截取整个LinearLayout的内容,多余的内容全部都要去掉!
代码语言:javascript复制//诺,主要观察这两个方法
/**
* 压缩图片
*
* @param bgimage
* @param newWidth
* @param newHeight
* @return
*/
public static Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {
// 获取这个图片的宽和高
float width = bgimage.getWidth();
float height = bgimage.getHeight();
// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
// 计算宽高缩放率
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// 缩放图片动作
//matrix.postScale(scaleWidth, scaleHeight);//TODO 因为宽高不确定的因素,所以不缩放
Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
(int) height, matrix, true);
return bitmap;
}
/**
* 截取指定View为图片
*
* @param view
* @return
* @throws Throwable
*/
public static Bitmap captureView(View view) throws Throwable {
Bitmap bm = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
view.draw(new Canvas(bm));
return bm;
}
其实很简单,就是首先获取View的宽高,然后设置bitmap格式,最后生成一张Bitmmap对象,然后在绘制出来,就这么个道理!
代码语言:javascript复制//这个是使用逻辑
Bitmap bitmap = null;
try {
bitmap = captureView(mShareBackgroundSign);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
UMImage umImage = null;
umImage = new UMImage(getActivity(), zoomImage(bitmap, 720, 1280));
new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN)
.withText(content)
.withMedia(umImage)
.share();
以上就是本文的全部内容,希望对大家的学习有所帮助。