国庆归来,第一天上班,假期综合症弄的人像吸了鸦片。
国庆结束,元旦还会远吗,元旦结束,春节还会远吗?年初信誓旦旦的目标, 还差几条街呢!so,keep it.
逛csdn的时候,发现自己一直没有头像。这怎么行呢,哥可是有身份的人啊。刚好,脑子里刚好闪过自己画图片来作为头像的想法,那就画Android机器人吧!
自定义view:
通过自定义view,来显示我们想要的图形。最主要的就是根据机器人的比例弄清楚画图的坐标,直接上代码了。
protected void onDraw(Canvas canvas) {
mPaint = new Paint();
mPaint.setColor(Color.CYAN);
//绘制头
RectF rectHead = new RectF(60,50,230,150);
canvas.drawArc(rectHead,0,-180,false,mPaint);//右边为零度,顺时针为正
//绘制眼睛
mPaint.setColor(Color.WHITE);
canvas.drawCircle(120,75,5,mPaint);
canvas.drawCircle(180,75,5,mPaint);
mPaint.setColor(Color.CYAN);
//天线
mPaint.setStrokeWidth(10);
canvas.drawLine(60,10,120,60,mPaint);
canvas.drawLine(180,60,240,10,mPaint);
//身体
canvas.drawRect(60,110,240,210,mPaint);
RectF body = new RectF(60,200,240,250);
canvas.drawRoundRect(body,10,10,mPaint);
//腿儿
RectF rectFLeg = new RectF(80,230,120,320);
canvas.drawRoundRect(rectFLeg,20,20,mPaint);
rectFLeg.offset(100,0);
canvas.drawRoundRect(rectFLeg,20,20,mPaint);
//胳膊
RectF rectFArm = new RectF(10,110,50,210);
canvas.drawRoundRect(rectFArm,20,20,mPaint);
rectFArm.offset(240,0);
canvas.drawRoundRect(rectFArm,20,20,mPaint);
super.onDraw(canvas);
}
public void saveBitmap(String path){
File file = new File(path);
try {
FileOutputStream out = new FileOutputStream(file);
if (mBitmp.compress(Bitmap.CompressFormat.PNG, 20, out)) {
out.flush();
out.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}