• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 自定义控件详解(一):Paint类与Canvas类,paintcanvas

自定义控件详解(一):Paint类与Canvas类,paintcanvas

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了安卓自定义控件详解,自定义控件,android 自定义控件,安卓自定义控件,c#自定义控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

自定义控件详解(一):Paint类与Canvas类,paintcanvas


 

前言:  

  自定义控件必需的两个类:Paint与Canvas

  Paint    ---  相当于绘图的"笔"

  Canvas --- 相当于绘图的"纸"

  

一、Paint  

  绘图笔,即用来设定比如 颜色、线条宽度、线条透明度等熟悉的。

  看一下Paint类所有的setXX() 方法 

  

  

   其中常用的:

  • paint.setAntiAlias(true);//抗锯齿功能
  • paint.setColor(Color.RED);  //设置画笔颜色    
  • paint.setStyle(Style.FILL);//设置填充样式
  • paint.setStrokeWidth(10);//设置画笔宽度 ,单位px
  • paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影

 

  这里简单介绍下 第3个、第5个 方法的属性

  1、paint.setStyle(Style.XXX); //设置填充样式

  

  Style.FILL ,即 画笔填充 ,比如你要画一个矩形,那么这个矩形内部是填充了的

  

  Style.STROKE ,即画笔画出的只有边框,

   

  Style.FILL_AND_STROKE ,即边框线条和内部填充都有

  

  

  2、paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影

    

   (1)、radius(角度),即阴影的倾斜角度,

     (2)、dx ,即阴影x方向偏移量

   (3)、dy ,即阴影y方向偏移量

     (4)、shadowColor ,即阴影的颜色

    

二、Canvas

  画布、纸。

  Canvas类的主要方法是drawXXX() , 即 画线条,画圆形,画矩形,画文字,画椭圆 等等

  

 

三、实践

  我们写几个例子,用Paint控制画笔的线条宽度,颜色等属性

          用Canvas控制画出的形状

  首先自定义一个类继承自 View 类 重写三个构造方法

  

 重写onDraw()方法,该方法用于绘制自定义控件

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

        // 设置画笔的属性
        paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.RED);
        paint.setStrokeWidth(2); //单位px
        paint.setTextSize(30); //设置文本大小

        // 设置画布的属性 ,注意这里onDraw()方法参数有Canvas对象了  不要在 new 一个了
        canvas.drawRGB(255, 255,255);
        canvas.drawLine(200,200,600,200,paint); //画一条从坐标(200,200) 到 坐标(600,200) 颜色为红色的 横向直线
        canvas.drawRect(200,420,600,520,paint); //画一条左上角坐标(200,420) ,宽度400 高度100的 红色实心矩形
        canvas.drawCircle(400,800,100,paint);    //画一条圆心坐标(400,800) 半径100 的红色实心圆形
        canvas.drawText("这是画出来的文本",200,1000,paint); //画一条左侧开始坐标(200,1000)的文本

    }

  

  在activity中使用

  

 

效果图:

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 自定义控件详解(四):Paint 画笔路径效果,paint画笔
  • 自定义控件详解(五):onMeasure()、onLayout(),onmeasureonlayout
  • 自定义控件详解(二):Path类 相关用法,详解path
  • 自定义控件详解(一):Paint类与Canvas类,paintcanvas

相关文章

  • 2017-05-26Android studio 百度地图开发(2)地图定位
  • 2017-05-222.3.8 SeekBar(拖动条)
  • 2017-05-26安卓开发—简单的登陆界面,安卓登陆界面
  • 2017-05-26我的android学习经历6,android学习经历6
  • 2017-05-26redis master-slave 切换演练
  • 2017-05-26编译器开发系列--Ocelot语言5.表达式的有效性检查,--ocelot有效性
  • 2017-05-26nagios二次开发之“依据分组绘制服务图”
  • 2017-05-26Android开发笔记(4)——MainActivity.java文件修改&布局嵌套,androidmainactivity
  • 2017-05-26Android 判断当前语言环境是否是中文环境,android中文
  • 2017-05-26Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07),kotlinlambda

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 安卓第四天笔记-Sqlite,安卓第四天-sqlite
    • 1、初识Activity,初识activity
    • Drawable资源的初步使用
    • andriod 带看括弧的计算器,andriod括弧计算器
    • Android 反编译和混淆,android反编译混淆
    • Android开发学习-view,android开发-view
    • Android中ListView实现图文并列并且自定义分割线(完善仿微信APP),androidlistview
    • Android 拨号器的简单实现,android拨号器实现
    • Android开源库集合(工具),android开源库集合
    • android 滑动冲突的处理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有