Android用canvas画哆啦A梦
先上图:
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梦的更多相关文章
- 用canvas画“哆啦A梦”时钟
前言:今天看完了Js书的canvas画布那张,好开心~又是心爱的canvas~欧耶~ 之前看到有人建议我画蓝胖子,对哦,我怎么把童年最喜欢的蓝胖子忘了,为了表达我对蓝胖子的歉意,所以今天画了会动的he ...
- Android利用canvas画各种图形
Android利用canvas画各种图形(点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形) 本文链接:https://blog.csdn.net/rhljiayou/article/det ...
- 纯css画哆啦A梦
今天有点无聊,照着网上的图写了个哆啦A梦,无技术可言,纯考耐心. <!doctype html> <html lang="en"> <head> ...
- Android利用canvas画画板
首先新建一个项目工程,建立文件,如下图所示
- java 画 哆啦A梦
package Demo;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;impo ...
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .
1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...
- Android利用canvas画各种图形 及Paint用法 .
引自:http://blog.csdn.net/carlfan/article/details/8139984 1.首先说一下canvas类: Class Overview The Canvas cl ...
- android 使用Canvas画箭头
public class MyCanvas extends View{ private Canvas myCanvas; private Paint myPaint=new Pai ...
- Android之canvas详解
首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...
随机推荐
- 命令模式之2 Invoker Vs. Client
当程序中直接编写下达命令的语句如new Cmd1().execute()时.一般会将调用者与客户类合二为一. 在GUI程序中.下达命令的语句通常包括在底层框架中.或者说底层框架包括了调用者.这时程序猿 ...
- USACO holstein 超时代码
/* ID:kevin_s1 PROG:holstein LANG:C++ */第八组数据跪了.半天都不出结果 #include <iostream> #include <cstdi ...
- 数据可视化利器pyechart和matplotlib比较
python中用作数据可视化的工具有多种,其中matplotlib最为基础.故在工具选择上,图形美观之外,操作方便即上乘. 本文着重说明常见图表用基础版matplotlib和改良版pyecharts作 ...
- SQL语法精讲(包括建库、建表、建视图、查询、增加、删除、)
SQL语法精讲(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELE ...
- 【cocos2d-js官方文档】二十、moduleConfig.json
概述 该配置文件相当于v2版本号中的jsloader.js. 改造的目的是为了使得配置纯粹化,同一时候也能比較好的支持cocos-console.cocos-utils甚至是用户自己定义脚本工具. 字 ...
- UI设计师不可不知的安卓屏幕知识-安卓100分享
http://www.android100.org/html/201505/24/149342.html UI设计师不可不知的安卓屏幕知识-安卓100分享 不少设计师和工程师都被安卓设备纷繁的屏幕搞得 ...
- angularjs1-4 事件指令
<div ng-app="myApp"> <div ng-controller="firstController"> <div n ...
- OEM:Enterprise Manager 无法连接到数据库实例 错误解决
今天遇到了一个Enterprise Manager 无法连接到数据库实例的错误,无法使用OEM,经过检查发现是 SYSMAN用户被锁定了,关于Enterprise Manager 无法连接到数据库实例 ...
- DB-MySQL:MySQL 临时表
ylbtech-DB-MySQL:MySQL 临时表 1.返回顶部 1. MySQL 临时表 MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysq ...
- Python笔记(八)
#-*-coding:utf-8-*- # Python内置函数 print abs(-45) # 绝对值函数 print divmod(7,2) # 返回一个包含商和余数的元组 # input(&q ...