本文實例為大家分享了Android截取指定View為圖片的具體代碼,供大家參考,具體內(nèi)容如下
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),峨眉山企業(yè)網(wǎng)站建設(shè),峨眉山品牌網(wǎng)站建設(shè),網(wǎng)站定制,峨眉山網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,峨眉山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
這個功能是為了截取指定的View為圖片,然后分享到微信以及朋友圈使用的!
如圖所示,我需要截取整個LinearLayout的內(nèi)容,多余的內(nèi)容全部都要去掉!
//諾,主要觀察這兩個方法 /** * 壓縮圖片 * * @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(); // 創(chuàng)建操作圖片用的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的寬高,然后設(shè)置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();
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。