Android自定义view绘图
一、新建一个视图类,继承自View,重写OnDraw()函数,在函数内绘图
public class myView extends View {//新建一个视图类,继承自View
myView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
//在下面绘图
}
二、Paint设置
Paint就是我们的画笔,我们可以设置它的颜色,粗细,样式,阴影等,在绘图的时候,我们要先实例化画笔工具
Paint paint = new Paint();
设置画笔颜色
paint.setColor(Color.BLUE);//设置画笔为蓝色
设置画笔的样式
paint.setStyle(Style.FILL);//填充内部
样式有三种
FILL:填充内部 FILL_AND_STROKE:填充内部和描边 STROKE:只描边
默认为FILL吧,前2种看不出差别
设置画笔宽度
paint.setStrokeWidth(10);//宽度10
设置阴影
paint.setShadowLayer(8, 20, 20, Color.RED);//设置阴影 //第一个参数是阴影的倾斜度
//第二个参数是水平位移
//第三个参数是垂直位移
好吧,虽然不是很明显的样子-.-
setTextSize(float textSize) // 设置字体大小
setUnderlineText(booleanunderlineText) // 设置下划线
三、Canvas设置
Canvas就是画布,我们可以在上面绘图
画布背景颜色设置
canvas.drawColor(Color.BLUE);
canvas.drawRGB(255, 255, 0); //两种方法
四、图形的绘制方法
画圆
drawCircle (float cx, float cy, float radius, Paint paint);
//cx:圆点的X坐标
//cy:圆点的Y坐标
//radius:圆点的半径
//paint:自定义的画笔
需要说明的是,绘制图形的坐标圆点位置是屏幕左上角,以那里为圆点
画矩形
Paint paint = new Paint();
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 100, 30), paint);//使用Rect构造
//左上角(10,10) 右上角(100,30)
4个点:左上右下的排列,其实就是2个坐标(10,10),(100,30)
绘制字体
drawText(String text, float x, floaty, Paint paint) //渲染文本,Canvas类除了上面的还可以描绘文字,参数一是String类型的文本,参数二x轴,参数三y轴,参数四是Paint对象。
绘制直线
drawLine(float startX, float startY, float stopX, float stopY, Paintpaint) //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint 画刷对象。
绘制点
drawPoint (float x, float y, Paint paint)
//float X:点的X坐标
//float Y:点的Y坐标
五,把视图类添加到Activity中
很简单,直接实例化我们的视图类myView,在用setContentView(view);
myView mv = new myView(this); setContentView(mv);
Android自定义view绘图的更多相关文章
- Android自定义View绘图实现拖影动画
前几天在"Android绘图之渐隐动画"一文中通过画线实现了渐隐动画,但里面有个问题,画笔较粗(大于1)时线段之间会有裂隙,我又改进了一下.这次效果好多了. 先看效果吧: 然后我们 ...
- Android 自定义View及其在布局文件中的使用示例(二)
转载请注明出处 http://www.cnblogs.com/crashmaker/p/3530213.html From crash_coder linguowu linguowu0622@gami ...
- [原] Android 自定义View步骤
例子如下:Android 自定义View 密码框 例子 1 良好的自定义View 易用,标准,开放. 一个设计良好的自定义view和其他设计良好的类很像.封装了某个具有易用性接口的功能组合,这些功能能 ...
- Android自定义View之ProgressBar出场记
关于自定义View,我们前面已经有三篇文章在介绍了,如果筒子们还没阅读,建议先看一下,分别是android自定义View之钟表诞生记.android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检 ...
- Android 自定义 View 圆形进度条总结
Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...
- Android自定义View 画弧形,文字,并增加动画效果
一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类 B ...
- (转)[原] Android 自定义View 密码框 例子
遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 ...
- Android 自定义View合集
自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...
- Android 自定义View (五)——实践
前言: 前面已经介绍了<Android 自定义 view(四)-- onMeasure 方法理解>,那么这次我们就来小实践下吧 任务: 公司现有两个任务需要我完成 (1)监测液化天然气液压 ...
随机推荐
- MongoDB安装及环境配置
一.什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供 ...
- 一般处理程序里使用session对象
在一般处理程序里使用session,必须继承 IRequiresSessionState 接口.
- 前端开发 Vue -4promise解读2
https://www.runoob.com/vue2/vue-tutorial.html promise promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执 ...
- sql 防注入(更新问题)
一下这条语句虽然不会是数据表中的数据发生变化,但是会对数据库主从造成影响 update `article` where `article_id` = '40&n974742=v995656' ...
- iOS - Scenekit3D引擎初探之 - 导入模型+上传服务器+下载并简单设置
SceneKit是ios8之后苹果推出了一个3D模型渲染框架. SceneKit现在可以支持有限的几种模型,截止到我写这篇文章为止似乎只有.dae和.abc后一种模型我没有使用过.这篇文章只针对.da ...
- 远程 Linux(Ubuntu 18)添加字体
安装 xshell与xftp 连接xshell 点击 xshell上方工具栏中的xftp图标, 自动连接xftp linux下创建字体目录 su cd / cd usr/share/fonts mkd ...
- shopxo代码审计
由于工作原因,分析了很多的cms也都写过文章,不过觉得好像没什么骚操作都是网上的基本操作,所以也就没发表在网站上,都保存在本地.最近突然发现自己博客中实战的东西太少了,决定将以前写的一些文章搬过来,由 ...
- MySql 学习之 一条查询sql的执行过程
相信大家都接触过Mysql数据库,而且也肯定都会写sql.我不知道大家有没有这样的感受,反正我是有过这样的想法.就是当我把一条sql语句写完了,并且执行完得到想要的结果.这时我就在想为什么我写这样的一 ...
- 记录java+testng运行selenium(三)---xml、ini、excel、日志等配置
一: ini文件 ini目前只用处存储浏览类型及需要打开的url,ini文件放在configs文件夹下面. 读取ini代码如下: package toolskit.documents; import ...
- TLS1.3 PPT 整理
1.握手协议的目的是什么 建立共享秘钥(通常使用公钥加密).协商算法和模型以及加密使用的参数,验证身份. 2.记录协议 传输独立的信息,在堆成加密算法下保护数据传输 3.RSA Handshake S ...