绘制Android机器人

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

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


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


猜你喜欢

转载自blog.csdn.net/Mr_azheng/article/details/78187711