绘制Android机器人

来源:互联网 发布:linux dd iso u盘 编辑:程序博客网 时间:2024/05/22 03:51

国庆归来,第一天上班,假期综合症弄的人像吸了鸦片。

国庆结束,元旦还会远吗,元旦结束,春节还会远吗?年初信誓旦旦的目标, 还差几条街呢!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);    }


将bitmap保存为png图片:

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();        }    }


最终的效果就是楼主的头像了。代码实现都比较简单,就没写的很详细了,只是记录一下,偷个懒,哈哈!