其实画图就是在画布上画出图形。废话不多说,直接上代码
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 ");
}
}
}
其实代码就这么多了。