1. 程式人生 > >將linlayout佈局轉為bitmap圖片和儲存

將linlayout佈局轉為bitmap圖片和儲存

1.首先新建路徑

 File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/");
        if (!filedirs.exists()) {
            filedirs.mkdirs();
        }

2.生成某個佈局的bitmap

    /**
     * 生成某個LinearLayout的圖片
     */
    private Bitmap getLinearLayoutBitmap2(LinearLayout linearLayout, int
screenWidth, 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 boolean
saveBitmap(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