本文实例为大家分享了Android截取指定View为图片的具体代码,供大家参考,具体内容如下
成都创新互联是一家集网站建设,峨眉山企业网站建设,峨眉山品牌网站建设,网站定制,峨眉山网站建设报价,网络营销,网络优化,峨眉山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
这个功能是为了截取指定的View为图片,然后分享到微信以及朋友圈使用的!
如图所示,我需要截取整个LinearLayout的内容,多余的内容全部都要去掉!
//诺,主要观察这两个方法 /** * 压缩图片 * * @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对象,然后在绘制出来,就这么个道理!
//这个是使用逻辑 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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。