-
jeck猫
创建一个空的位图创建一个新的Canvas对象并将此位图传递给它调用view.draw(Canvas),将刚刚创建的画布对象传递给它。有关详细信息,请参见方法文档。使用Bitmap.compress()可以将位图的内容写入到OutputStream文件中。伪代码:Bitmap bitmap = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);view.draw(canvas); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
-
九州编程
设置工程图缓存已启用画任何你想要的从视图获取位图对象压缩并保存图像文件import java.io.File;import java.io.FileOutputStream;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.os.Bundle;import android.util.Log;import android.view.View;public class CanvasTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Draw2d d = new Draw2d(this); setContentView(d); } public class Draw2d extends View { public Draw2d(Context context) { super(context); setDrawingCacheEnabled(true); } @Override protected void onDraw(Canvas c) { Paint paint = new Paint(); paint.setColor(Color.RED); c.drawCircle(50, 50, 30, paint); try { getDrawingCache().compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/arun.jpg"))); } catch (Exception e) { Log.e("Error--------->", e.toString()); } super.onDraw(c); } }}
-
守着一只汪
画布到JPG:Canvas canvas = null;FileOutputStream fos = null;Bitmap bmpBase = null;bmpBase = Bitmap.createBitmap(image_width, image_height, Bitmap.Config.ARGB_8888);canvas = new Canvas(bmpBase);// draw what ever you want canvas.draw...// Save Bitmap to Filetry{ fos = new FileOutputStream(your_path); bmpBase.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); fos = null;}catch (IOException e){ e.printStackTrace();}finally{ if (fos != null) { try { fos.close(); fos = null; } catch (IOException e) { e.printStackTrace(); } }}