先上图:

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. 创建cifs系统案例之“实现将Windows磁盘共享至Linux”

    原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...

  2. linux含有某字符串的文件

    find .|xargs grep -ri "IBM" -l 只列出文件名:grep -rn "Item" * -l pattern files

  3. 客户端通过wcf来启动或者停止服务器上的windows service

    1.设置服务器上的windows service的security,下面的命令只能用cmd.exe来运行(以管理员模式) sc sdset "LISA_43_Dev_Batch" ...

  4. oracle 11g rac 修改VIP、scan VIP、priv IP

    11GR2 RAC modify vip,public ip,private ip,scan vip实施步骤1 修改目的    根据业务的需求,需要由原来的临时IP改为生产ip,以下为调整前后对应的I ...

  5. WEBSERVICE之JDK开发webservice

    转自:https://www.cnblogs.com/w-essay/p/7357262.html 一.开发工具与环境 1. jdk1.6版本以上(jdk1.6.0_21及以上版本) 2 .eclip ...

  6. Android Studio 插件 GsonFormat :你还在烦恼 为 Json格式 生成 JavaBean实体类吗?

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...

  7. linux下服务启动脚本

    #!/usr/bin/env python# -*- coding: utf-8 -*-# @File : deployment.py# @Author: Anthony.waa# @Date : 2 ...

  8. 前端面试---常见的web安全及防护原理

    一.常见的web安全及防护原理 1.sql注入原理 就是通过把sql命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 防护,总的来说有以下几点: 1. ...

  9. ES6的基本语法

    ES6 详细参考页面 简介 ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现.一般来说,这两个词是可以互换的. let命令 ES6新增了let命令,用来声明变 ...

  10. WCF(四)windows服务寄宿

    WCF常用的寄宿方式除了IIS寄宿外,还有一种方式是寄宿到windows服务中,跟随系统启动而启动. 1.在项目中选择“添加”--“新建windows服务” 2.打开系统生成的设计界面的代码,引用“u ...