您的位置:首页 > 其它

canvas新建画布,并将绘画结果保存到本地。

2015-08-31 17:17 183 查看
其实画图就是在画布上画出图形。废话不多说,直接上代码

bitmap = Bitmap.createBitmap(600, 600, Config.ARGB_8888);

//用createBitmap方法实例化一个新bitmap,bitmap并没有指定的图片

Canvas canvas = new Canvas(bitmap);//将bitmap作为画布

canvas.drawColor(Color.WHITE);//设置画布的背景颜色

Paint paint = new Paint();//新建一个画笔

paint.setAntiAlias(true);//抗锯齿效果

paint.setStyle(Style.STROKE);//空心圆效果

paint.setColor(Color.RED);

canvas.drawCircle(200, 120, 80, paint);

canvas.drawCircle(240, 80, 20, paint);

canvas.drawCircle(160, 80, 20, paint);

canvas.drawLines(new float[]{

200,100, 190,120,

200,100,210,120,

190,120,210,120}, paint);//三角形,坐标(200,100),( 190,120),(210,120)两两连线画图

// RectF rectF=new RectF(80, 100, 120, 30);

canvas.drawLine(160, 180, 240, 180, paint);//直线

// canvas.drawBitmap(bitmap,100, 100,paint);

photo.setImageBitmap(bitmap);

save();

接下来画好了圆,三角形鼻子,直线嘴巴,就可以保存图片了。

public void save(){

FileOutputStream fos=null;

try {

File file = new File(“/sdcard/pictures”);

if (!file.exists()) {

file.mkdir();//不存在该文件夹就重新创建

}

fos=new FileOutputStream(new File(file,System.currentTimeMillis()+”.jpg”));//jpg后缀

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i("tips", "fail to save ");
}finally{
if (fos!=null) {
try {
fos.close();
fos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("tips", "success to save ");
}
}

}


其实代码就这么多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  canvas 图形 图片