先上图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

非常easy

第一步:找到一张哆啦A梦的照片

第二部:image.setBackgroundResource(R.drawable.XX);

哆啦A梦就出来了

是不是非常easy...

以上是玩笑话..以下我们用代码来实现

首先,自己定义一个View,并实现构造方法

public class MyView extends View {

public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
} public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
} public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
} }

然后在onDraw函数中实现画图

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}

先初始化RectF和Paint

mRect = new RectF(getWidth(), getHeight(), getRight(), getBottom());

if (mPaint == null) {
mPaint = new Paint();
} else {
mPaint.reset();
}
mPaint.setAntiAlias(true);// 边缘无锯齿</span>

然后先画最外面蓝色的圆:

首先给圆的半径radius赋值。然后设置颜色以及style,最后画出一个半径为radius的圆

radius = getWidth() / 2;
mPaint.setColor(mBlue);
mPaint.setStyle(Paint.Style.FILL);
canvas.drawCircle(getWidth() / 2, getHeight() / 2, radius, mPaint);

然后再画一个半径比这个圆大1的空心圆,显示描边的效果

mPaint.setColor(mBlack);
mPaint.setStrokeWidth(mStrokeWidth);
mPaint.setStyle(Paint.Style.STROKE);// 设置空心
mRect.set(getWidth() / 8, (getHeight() - radius) * 3 / 4,getWidth() * 3 / 4, getHeight() * 3 / 4 + radius / 2);

然后画出第二层白色的椭圆。剩下的就不贴代码了,在这里就仅仅是说一下思路

首先画出最外层蓝色的圆以及描边,然后里面画一个白色的椭圆和描边,然后先画左眼和右眼以及眼珠和瞳孔,接下来画鼻子和胡须,最后再画嘴巴,主要用到的知识点有paint画圆、椭圆、斜线、贝塞尔曲线,代码中有些值我这里为了方便写死了...所以在不同机型上显示出来的效果可能有所差异,但重在思想...

源代码下载地址:http://download.csdn.net/detail/qq_18612815/9420631

Android用canvas画哆啦A梦的更多相关文章

  1. 用canvas画“哆啦A梦”时钟

    前言:今天看完了Js书的canvas画布那张,好开心~又是心爱的canvas~欧耶~ 之前看到有人建议我画蓝胖子,对哦,我怎么把童年最喜欢的蓝胖子忘了,为了表达我对蓝胖子的歉意,所以今天画了会动的he ...

  2. Android利用canvas画各种图形

    Android利用canvas画各种图形(点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形) 本文链接:https://blog.csdn.net/rhljiayou/article/det ...

  3. 纯css画哆啦A梦

    今天有点无聊,照着网上的图写了个哆啦A梦,无技术可言,纯考耐心. <!doctype html> <html lang="en"> <head> ...

  4. Android利用canvas画画板

    首先新建一个项目工程,建立文件,如下图所示

  5. java 画 哆啦A梦

    package Demo;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;impo ...

  6. Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .

    1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...

  7. Android利用canvas画各种图形 及Paint用法 .

    引自:http://blog.csdn.net/carlfan/article/details/8139984 1.首先说一下canvas类: Class Overview The Canvas cl ...

  8. android 使用Canvas画箭头

    public class MyCanvas extends View{        private Canvas myCanvas;    private Paint myPaint=new Pai ...

  9. Android之canvas详解

    首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...

随机推荐

  1. jQuery验证所有输入合法后才干提交

    大学三年里所有在专注后台编码.学会不知多少种,servlet.ssh,springMVC,web.py...... 最后每次碰到前端自己要写点东西就满目愁抑, 干脆自己好好理解一段前端代码, 特地拿出 ...

  2. IOS开发教程--怎样使用点9图片

    事先准备一张图片: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA== ...

  3. MQ发送定时消息

    通过延时发送来发送定时消息. RocketMQ只支持固定精度时间的延时消息发送:1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 若 ...

  4. poj--1236--Network of Schools(scc+缩点)

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14062   Accepted: 56 ...

  5. JPA实现一对多(OneToMany)关联

    转自:https://blog.csdn.net/qq_32444825/article/details/77084580 1.考试类 @Entity public classExam impleme ...

  6. Spring《五》集合的注入方式

    List.Set.Map.Properties 1.List <property name="msg"> <list> <value>gf< ...

  7. 使用 Object.create实现js 继承

    二.Object.create实现继承 本文将来学习第七种继承方式Object.create()方法来实现继承,关于此方法的详细描述,请戳这里.下面来通过几个实例来学习该方法的使用: var Pare ...

  8. 深入浅出JDK动态代理(一)

    1.何为代理 代理,即代替主角完成一些额外的事情.例如,明星都有经纪人,明星参演电影之前,经纪人作为明星的代理人和出资方洽谈片酬.排期等,而真正参与拍戏的还是明星本人,明星拍完戏后,由经纪人代理明星去 ...

  9. selenium基础

    浏览器 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转.输入.点击.下拉等来拿到网页渲染之后的结果,可支持多种浏览器 官网链接:http://selenium-python.re ...

  10. JWT加密

    JWT是一种加密算法,为了防止请求的信息在传输途中被拦截修改 JWT的引用: install-package jwt JWF由三部分组成:Header,Payload,Signature Payloa ...