Android自定义控件绘制基本图形基础入门
发布时间 - 2026-01-10 22:48:00 点击率:次本文讲述绘制Android自定义各种图形效果,为自定义控件的入门篇

相关视频链接:
Android自定义控件系列
http://edu.csdn.net/course/detail/3719/65396
Android视频全系列
http://edu.csdn.net/course/detail/2741/43163
绘制点–这个控件只需要在布局中引用或者代码中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绘制基本图形
# Android基本图形绘制方法
# Android开发 OpenGL ES绘制3D 图形实例详解
# Android开发之OpenGL绘制2D图形的方法分析
# Android openGl 绘制简单图形的实现示例
# Android编程开发之在Canvas中利用Path绘制基本图形(圆形
# 矩形
# 椭圆
# 三角形等)
# Android编程之canvas绘制各种图形(点
# 直线
# 弧
# 圆
# 文字
# 多边形
# 曲线
# 圆角矩形)
# Android自定义View实现shape图形绘制
# Android开发实现各种图形绘制功能示例
# android绘制几何图形的实例代码
# Android shape 绘制图形的实例详解
# Android中常见的图形绘制方式总结
# 几个
# 是指
# 自定义
# 三种
# 抗锯齿
# 最多
# 只需
# 我爱
# 要在
# 你我
# 隔着
# 全系列
# 大家多多
# 画一
# 入门篇
# AttributeSet
# View
# util
# Canvas
# graphics
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
phpredis提高消息队列的实时性方法(推荐)
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel如何实现多对多模型关联?(Eloquent教程)
如何用wdcp快速搭建高效网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
nginx修改上传文件大小限制的方法
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
高性能网站服务器部署指南:稳定运行与安全配置优化方案
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
nodejs redis 发布订阅机制封装实现方法及实例代码
Bootstrap整体框架之CSS12栅格系统
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
图册素材网站设计制作软件,图册的导出方式有几种?
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel如何配置任务调度?(Cron Job示例)
Laravel定时任务怎么设置_Laravel Crontab调度器配置
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何用虚拟主机快速搭建网站?详细步骤解析
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
重庆市网站制作公司,重庆招聘网站哪个好?
IOS倒计时设置UIButton标题title的抖动问题
佛山网站制作系统,佛山企业变更地址网上办理步骤?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
iOS正则表达式验证手机号、邮箱、身份证号等
如何在万网主机上快速搭建网站?
音响网站制作视频教程,隆霸音响官方网站?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何续费美橙建站之星域名及服务?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
js实现点击每个li节点,都弹出其文本值及修改
如何在阿里云服务器自主搭建网站?
如何在Windows 2008云服务器安全搭建网站?
EditPlus中的正则表达式 实战(4)
Laravel怎么判断请求类型_Laravel Request isMethod用法
如何批量查询域名的建站时间记录?
Laravel如何处理文件下载请求?(Response示例)
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
如何在阿里云域名上完成建站全流程?
北京企业网站设计制作公司,北京铁路集团官方网站?
Python进程池调度策略_任务分发说明【指导】
轻松掌握MySQL函数中的last_insert_id()

