將linlayout佈局轉為bitmap圖片和儲存
阿新 • • 發佈:2018-10-31
1.首先新建路徑
File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/"); if (!filedirs.exists()) { filedirs.mkdirs(); }
2.生成某個佈局的bitmap
/** * 生成某個LinearLayout的圖片 */ private Bitmap getLinearLayoutBitmap2(LinearLayout linearLayout, intscreenWidth, int screenHeight) { int w = screenWidth; int h = screenHeight ; // 建立對應大小的bitmap linearLayout.measure(0, 0); Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawColor(Color.WHITE); linearLayout.draw(canvas);return bitmap; }
3.把bitmap儲存為檔案
Bitmap btp = getLinearLayoutBitmap2(lin_share, lin_share.getWidth(), lin_share.getHeight()); File file = new File(filedirs, getTimeStamp() + ".jpg");
4.儲存檔案到手機
saveBitmap2(file, btp,99); /** * 儲存方法 */ private booleansaveBitmap(File mFile, Bitmap bm) { if (mFile.exists()) { mFile.delete(); mFile.mkdirs(); } try { FileOutputStream out = new FileOutputStream(mFile); bm.compress(Bitmap.CompressFormat.JPEG, 40, out); out.flush(); out.close(); return true; } catch (IOException e) { e.printStackTrace(); return false; } }
注意 不懂得用法 檢視下方完整方法
public File saveSharePic(LinearLayout lin_share) { File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/"); if (!filedirs.exists()) { filedirs.mkdirs(); } Bitmap btp = getLinearLayoutBitmap2(lin_share, lin_share.getWidth(), lin_share.getHeight()); File file = new File(filedirs, getTimeStamp() + ".jpg"); try { saveBitmap2(file, btp,99); } catch (Exception e) { e.printStackTrace(); } return file; }
by:leileitua