通过前两篇文章,问们学会了怎样拼接图片、给拼接好的图片加上边框样式,但这还不够,忙活了大半天 终于拼接好并给图片美化了,但是程序一旦推出,之前做的工作都白费了。这时我们会想,能不能把拼接好的图片保存起来,以便程序退出后我们仍然能够查看?当然可以。下面就讲讲具体怎样保存绘制好的Bitmap;
操作步骤:
1.得到我们创建的那个Bitmap(拼接好的那个)
bitmap = newBitmap(bit1,bit2);
2.将该Bitmap传递给要保存的方法
//保存拼接好的bitmap saveBitmapToSdcard(bitmap);
下面是具体保存方法和调用该方法的代码:
1.保存代码
/** * 将bitmap保存到内存卡中 * @param bitmap */ private void saveBitmapToSdcard(Bitmap bitmap){ File file = new File("/mnt/sdcard/graphics"); if(!file.exists()){//如果目录不存在就创建目录 file.mkdir(); } FileOutputStream out = null; try{ out = new FileOutputStream(file); if(bitmap != null){ /* * 三个参数的含义分别是: * 1.保存图片的格式 * 2.标识图片质量0~100.质量越小压缩的越小(这里设置100标识不压缩)。另外如果图片是png格式,压缩是无损的,将忽略此参数(设置无效) * 3.向OutputStream写入图片数据 */ bitmap.compress(CompressFormat.JPEG, 100, out); out.flush(); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(out != null){ out.close(); } }catch(Exception e){ e.printStackTrace(); } } }
2.调用代码:这个地方自己可以随意写在任意可能的地方。但是要注意重新开启一个新的线程来操作IO流。另外还要加上操作内存卡的权限
public JointBitmapView(Context context,Bitmap bit1,Bitmap bit2) { super(context); bitmap = newBitmap(bit1,bit2); new Thread(){ public void run() { //保存拼接好的bitmap saveBitmapToSdcard(bitmap); }; }.start(); }
3.备注:如果需要看完整代码,需要参考上两篇博客的代码。