Android画图最基本的三个对象(Color,Paint,Canvas)

三个类都存放在 android.graphics包下

1) Color :颜色对象,相当于现实生活中的 ‘调料’

2) Paint : 画笔对象,相当于现实生活中画图用的 ‘笔’————主要的还是对‘画笔’进行设置

3) Canvas : 画布对象,相当于现实生活中画图用的 ‘纸 或 布’

三者相结合,就能画出基本的图形

常用方法:

1)Color :颜色对象

1.可以通过 Color.颜色名,来获取颜色,应为是静态的,返回一个整数值

2.调用静态的 argb方法,可以调出个性的颜色

alpha 是设置透明度的;red 设置红色; green是设置绿色; blue设置蓝色,范围都是[0-255],0至255 颜色依次加深,

2)Paint : 画笔对象,常用方法

3)Canvas :画布对象 ,绘制常见图形的方法

在android中自定义图形

1)需要继承 View 这个类,所有的组件都是继承于这个类

2)并要实现一个带Context参数的构造函数,因为父类中,没有隐式无参的构造函数

3)需重写父类中的onDraw方法,一切的画图操作将在这进行

1.具体代码:自定义 MyView

  1. package com.shudu;
  2. import android.content.Context;
  3. import android.graphics.BitmapFactory;
  4. import android.graphics.Canvas;
  5. import android.graphics.Color;
  6. import android.graphics.Paint;
  7. import android.view.View;
  8. // 自定义 view,需要实现 一个显式的构造函数,重写 onDraw 方法,一切的操作都在该方法上进行
  9. public class MyView extends View {
  10. public MyView(Context context)
  11. {
  12. super(context);
  13. }
  14. /**
  15. * 要画图形,最起码要有三个对象:
  16. * 1.颜色对象 Color
  17. * 2.画笔对象 Paint
  18. * 3.画布对象 Canvas
  19. */
  20. @Override
  21. public void onDraw(Canvas canvas) {
  22. // TODO Auto-generated method stub
  23. Paint paint = new Paint();
  24. paint.setColor(Color.BLUE);
  25. //设置字体大小
  26. paint.setTextSize(100);
  27. //让画出的图形是空心的
  28. paint.setStyle(Paint.Style.STROKE);
  29. //设置画出的线的 粗细程度
  30. paint.setStrokeWidth(5);
  31. //画出一根线
  32. canvas.drawLine(0, 0, 200, 200, paint);
  33. //画矩形
  34. canvas.drawRect(200, 500, 300, 300, paint);
  35. //画圆
  36. canvas.drawCircle(200, 200, 100, paint);
  37. //画出字符串 drawText(String text, float x, float y, Paint paint)
  38. // y 是 基准线 ,不是 字符串的 底部
  39. canvas.drawText("apple", 60, 60, paint);
  40. canvas.drawLine(0, 60, 500, 60, paint);
  41. //绘制图片
  42. canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 150, 150, paint);
  43. super.onDraw(canvas);
  44. }
  45. }

注意:

画 字符串

//画出字符串 drawText(String text, float x, float y, Paint paint)    // y 是 基准线 ,不是 字符串的 底部,就像 英语本上 写的英文 有些超出了 那根水平线就是基准线

  canvas.drawText("apple", 60, 60, paint);   canvas.drawLine(0, 60, 500, 60, paint);

2.Activity类,在Activity中显示出来

  1. package com.shudu;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. public class Shudu01Activity extends Activity {
  5. /** Called when the activity is first created. */
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(new MyView(this));
  10. }
  11. }

具体效果:

Android画图最基本的三个对象(Color,Paint,Canvas)的更多相关文章

  1. Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  2. Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  3. Android应用之《宋词三百首》(二)

    接上回,上回我们讲到MainActivity里面将所有的宋词标题和作者显示到界面的ListView中去,我们接下来的工作是通过点击ListView的Item跳转到ContentActivity里面去显 ...

  4. Android艺术开发探索第三章——View的事件体系(上)

    Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...

  5. Android群英传笔记——第三章:Android控件架构与自定义控件讲解

    Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...

  6. Android画图系列(二)——自己定义View绘制基本图形

    这个系列主要是介绍下Android自己定义View和Android画图机制.自己能力有限.假设在介绍过程中有什么错误.欢迎指正 前言 在上一篇Android画图系列(一)--自己定义View基础中我们 ...

  7. 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...

  8. Android 高级UI组件(三)

    一.popupWindow 1.AlertDialog和PopupWindow最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManage ...

  9. Android实现全屏的三种方式

    一.通过代码 requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏 getWindow().setFlags(WindowManager.Lay ...

随机推荐

  1. NOIP2017 D1T2时间复杂度

    这道题在考试时看到感觉与第一题放反了位置(因为我还没有看到第一题是结论题) 对于每个语句进行栈的模拟,而如果有语法错误就特判. 对于每一条for语句我们将其与栈顶元素连边,复杂度是1的我们不用考虑,如 ...

  2. 【8.31校内测试】【找规律二分】【DP】【背包+spfa】

    打表出奇迹!表打出来发现了神奇的规律: 1 1 2 2 3 4 4 4 5 6 6 7 8 8 8 8 9 10 10 11 12 12 12 13 14 14 15 16 16 16 16 16.. ...

  3. CDOJ 1292 卿学姐种花 暴力 分块 线段树

    卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...

  4. BZOJ 4027: [HEOI2015]兔子与樱花 树上dp

    4027: [HEOI2015]兔子与樱花 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

  5. ROS知识(4)----初级教程之常见问题汇总

    一.开机启动ROS的工作空间的路径设置失败 现象:在教程:http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage中的第5.1小节,运行以下命令失败: ...

  6. UML建模之时序图(Sequence Diagram)教程

    一.时序图 时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列.通常把发起交互的对象放在左边,较下级对象依次放在 右边,然后把这些对象发送和接受的消息沿Y轴 ...

  7. Tasker文件夹说明

    ################导入类#################路径 类型 后缀名 /tasker/profiles/ 配置 .prf.xml /tasker/projects/ 项目 .pr ...

  8. MyEclipse for Linux版下载

    最近看到很多网友都在找MyEclipse for Linux版下载,费了很大劲也没有找到.1.建议通过代理到官方网站下载. 2.用迅雷下载.设置迅雷使用代理下载(我用的就是这种方式). MyEclip ...

  9. java_Collection_详细介绍

    转自:http://blog.sina.com.cn/s/blog_3fb3625f0101aref.html 1.类集框架 java.util 包中包含了一些在 Java 2 中新增加的最令人兴奋的 ...

  10. MRIcro tutorial -- mricro 教程

      MRIcro tutorial 参考网址:http://www.mccauslandcenter.sc.edu/mricro/mricron/ http://www.cabiatl.com/mri ...