• Android用canvas画哆啦A梦


    先上图:



    非常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




  • 相关阅读:
    springboot~使用docker构建gradle项目
    CH BR8(小学生在上课-逆元和互质数一一对应关系)
    UNIX环境高级编程第二版代码笔记
    【Linux学习笔记】用nc实现两台主机间的文件传输(不需要输密码)
    hdu 1159
    轻量级的原型设计工具-Axure RP
    在Ubuntu 12.10 上安装部署Openstack
    [Android 中级]Voip之CSipSimple类库的编绎
    OpenStack云计算快速入门之一:OpenStack及其构成简介
    OpenStack云计算快速入门之二:OpenStack安装与配置
  • 原文地址:https://www.cnblogs.com/llguanli/p/7018941.html
Copyright © 2020-2023  润新知