本文讲述绘制android自定义各种图形效果,为自定义控件的入门篇

相关视频链接:

android自定义控件系列

android视频全系列

绘制点–这个控件只需要在布局中引用或者代码中new 即可,下面几个绘制只展示ondraw方法

package com.example.viewdemo1.view;

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.paint.style;

import android.util.attributeset;

import android.view.view;

public class pointview extends view {

public pointview(context context, attributeset attrs, int defstyleattr) {

super(context, attrs, defstyleattr);

}

public pointview(context context, attributeset attrs) {

super(context, attrs);

}

public pointview(context context) {

super(context);

}

@override

protected void ondraw(canvas canvas) {

super.ondraw(canvas);

// 对于画笔

paint paint = new paint();

// 设置抗锯齿

paint.setantialias(true);

// 设置画笔颜色

paint.setcolor(color.red);

// 三种样式

paint.setstyle(style.fill_and_stroke);

paint.setstrokewidth(5);

// 阴影

paint.setshadowlayer(10, 0, 0, color.cyan);

// 点的坐标 x0,y0,x1,y1......

float[] pts = { 50, 50, 100, 100, 200, 200, 300, 300, 0, 100, 100, 0 };

canvas.drawpoints(pts, paint);

// 绘制点的时候,隔着几个点绘制几个,最多不到多少点

canvas.drawpoints(pts, 1, 6, paint);

}

}

绘制线

@override

protected void ondraw(canvas canvas) {

super.ondraw(canvas);

// 对于画笔

paint paint = new paint();

// 设置抗锯齿

paint.setantialias(true);

// 设置画笔颜色

paint.setcolor(color.red);

// 三种样式

paint.setstyle(style.fill);

paint.setstrokewidth(0.5f);

// 阴影

// paint.setshadowlayer(10, 0, 0, color.cyan);

// x0,y0,x1,y1

float[] pts = { 100, 100, 200, 200, 200, 200, 300, 200, 300, 200, 300,

400 };

// 以上是6个点的x,y坐标,两两连成线段

canvas.drawlines(pts, paint);

// 画一条线

canvas.drawline(0, 0, 100, 100, paint);

}

绘制圆

//指定圆心坐标,半径就ok

canvas.drawcircle(100, 100, 100, paint);

绘制文字

//设置文字大小

paint.settextsize(40);

//指定坐标,最好指定文字大小

canvas.drawtext("哈", 100, 500, paint);

//将文字设置到指定路径上

path path = new path();

paint.settextsize(50);

path.addcircle(200, 200, 150, direction.ccw);

canvas.drawtextonpath("我爱你我的祖国,我爱你我亲爱的姑娘", path, 0, 0, paint);

绘制矩形

// 阴影

paint.setshadowlayer(10, 0, 0, color.cyan);

// x y 坐标 及半径值

// canvas.drawcircle(100, 100, 50, paint);

canvas.drawrect(50, 50, 300, 300, paint);

绘制圆弧

//指定放置圆弧的矩形

rectf oval=new rectf(10,10,210,210);

//绘制圆弧-0是指开始度数,270是指结束度数 false是指不连接圆心,paint是画笔

canvas.drawarc(oval, 0, 270, false, paint);

绘制椭圆

//指定矩形,指定画笔

canvas.drawoval(oval, paint);

以上就是基本图形的绘制了…very easy。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

Android绘制自定义控件,Android自定义控件绘制基本图形基础入门相关推荐

  1. 安卓航班Android开发经典教程大总结2----游戏基础入门及高级编程

    前总结的是Android基础编程及深入,基本都是一些控件的使用,本次将全面对Android中游戏开发进行总结,马上就春节了,在这里代表安卓航班给大家拜年,祝大家阖家欢乐,工作顺利,早日发大财!下面就开 ...

  2. android趣味项目,AndroidStudio项目开发实战——从基础入门到趣味开发

    AndroidStudio项目开发实战--从基础入门到趣味开发 编辑 锁定 讨论 上传视频 <AndroidStudio项目开发实战--从基础入门到趣味开发>是2020年3月电子工业出版社 ...

  3. android 绘制控件,Android自定义控件绘制基本图形基础入门

    本文讲述绘制Android自定义各种图形效果,为自定义控件的入门篇 相关视频链接: 绘制点–这个控件只需要在布局中引用或者代码中new 即可,下面几个绘制只展示onDraw方法 package com ...

  4. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 自定义控件过渡绘制 | 布局文件层次深 | GPU 过渡绘制调试工具 | 背景过度绘制 )

    文章目录 一. 过度绘制 二. 过度绘制两种情况 ( 自定义控件 | 布局文件 ) 三. 过度绘制调试 1. 打开过渡绘制调试工具 2. 过渡绘制调试中不同颜色的含义 3. 过渡渲染示例 四. 背景过 ...

  5. Android自定义控件_View的绘制流程

    每一个View/ViewGroup的显示都会经过三个过程: 1.measure过程(测量View显示的大小,位置): 2.layout过程(布局view的位置): 3.draw过程(上一篇文章说到的通 ...

  6. 【Android】开源项目汇总-备用 各种图形的绘制,各种效果

    from://http://www.eoeandroid.com/home.php?mod=space&uid=765778&do=blog&id=47674 Android开 ...

  7. SurfaceView简单理解,Android混淆,Android openGl开发详解简单图形的绘制,

    SurfaceView允许你在非ui线程中去绘制. SurfaceView的帧率可以操作60FPS 在要求实时性比较高的游戏开发中,显然,view的ondraw是满足不了你的,这时候只能是用Surfa ...

  8. android 自定义多边形,Android:自定义view之Canvas绘制图形

    前面讲解了onMeasure,接下来讲解onDraw,onDraw主要就是绘制,也就是我们真正关心的部分,使用的是Canvas绘图. @Override protected void onDraw(C ...

  9. 自定义控件android.r,Android控件架构与自定义控件

    前言 最近在开发的路上越走越远了,每天在看各位大神公众号更新内容是自定义View的时候,一些小的内容有点模具,决定回过头来温习一下过往的内容.此篇也是根据android群英传来总结的一篇文章. 1 A ...

最新文章

  1. 手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统(附源码+视频教程(第9节))...
  2. mysql分库分区分表怎么做_mysql 分区、分表、分库分表。
  3. JavaScript中的坐标
  4. mysql安装教程8.0.22_mysql 8.0.22 安装配置方法图文教程
  5. C#中不常见的运算符功能汇总
  6. js template换行_JavaScript字符串换行符?
  7. [记录]---mysql数据库,decimal类型设置默认值0,不要是null
  8. 如何构建可视化的营销数据大屏? 1
  9. USACO1.1.2 - Greedy Gift Givers
  10. Java基础练习之流程控制(四)
  11. bat计算机清理原理,电脑如何一键清除垃圾bat
  12. Centos yum 包管理工具离线安装
  13. WPS-Word : 页首的段落段前间距失效/不起作用/无效,段前一行无效没反应
  14. s7 modbus测试软件,S7-1200 Modbus-Tcp通讯测试
  15. 如何通过美股交易软件完成开户?美股开户交易要点有哪些?
  16. 让闲置物品“换”出财富
  17. 阿里云ECS服务器概念理解
  18. 成熟FOC电机控制代码 大厂成熟FOC电机控制图。 可用于电动自行车,滑板 车,电机FOC控制等
  19. 【a标签的使用和属性】
  20. 关于SEGGER和Jlink下载的问题

热门文章

  1. 如何判断是否丢掉用户请求
  2. JavaScript 操作 COM 控件
  3. 简单易懂地讲述网关和DNS的概念
  4. CentOS7添加中文输入法
  5. 在Windows上部署AMP(Apache2.4+MySQL8.0+PHP7.2)
  6. Linux操作系统为何会对计算机病毒免疫
  7. codeforces 954C
  8. CCPC 2018桂林站游记
  9. javascript的null 和undifined
  10. 根据参数显示类别(三级联动,需要JSON数据)