安卓自定义View进阶-Canvas之画布操作 转载 https://www.gcssloop.com/customview/Canvas_Convert 本来想把画布操作放到后面部分的,但是发现很多图形绘制都离不开画布操作,于是先讲解一下画布的基本操作方法. 一.Canvas的常用操作速查表 操作类型 相关API 备注 绘制颜色 drawColor, drawRGB, drawARGB 使用单一颜色填充整个画布 绘制基本形状 drawPoint, drawPoints, drawLine, d…
基础篇 安卓自定义View基础 - 坐标系 安卓自定义View基础 - 角度弧度 安卓自定义View基础 - 颜色 进阶篇 安卓自定义View进阶 - 分类和流程 安卓自定义View进阶 - Canvas之绘制图形 安卓自定义View进阶 - Canvas之画布操作 安卓自定义View进阶 - Canvas之图片文字 安卓自定义View进阶 - Path之基本操作 安卓自定义View进阶 - Path之贝塞尔曲线 安卓自定义View进阶 - Path完结篇 安卓自定义View进阶 - PathM…
Canvas之绘制基本形状 作者微博: @GcsSloop [本系列相关文章] 在上一篇自己定义View分类与流程中我们了解自己定义View相关的基本知识,只是,这些东西依然还是理论,并不能拿来(zhuang)用(B), 这一次我们就了解一些能(zhaung)用(B)的东西. 在本篇文章中,我们先了解Canvas的基本用法,最后用一个小演示样例来结束本次教程. 一.Canvas简单介绍 Canvas我们能够称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大. **一般来说…
上篇文章介绍了自定义View的创建流程,从宏观上给出了一个自定义View的创建步骤,本篇是上一篇文章的延续,介绍了自定义View中两个必不可少的工具Canvas和Paint,从细节上更进一步的讲解自定义View的详细绘制方法.如果把自定义View比作盖一座房子,那么上篇文章就相当于教会了我们怎么一步步的搭建房子的骨架,而本篇文章将要教会我们的是为房子的骨架添砖加瓦直至成型,甚至是怎么装修. Canvas 为了后文更为方便的讲解Canvas的常用方法的使用,我们先来做一些准备工作,创建一个自定义V…
小菜最近在学习自定义 View,刚了解了一下 Paint 画笔的神奇之处,现在学习一下 Canvas 画布的神秘之处.Flutter 提供了众多的绘制方法,小菜接触不深,尽量都尝试一下. Canvas 画布 drawColor 绘制背景色 drawColor 需要传入两个参数,第一个为色值,第二个为混合模式,有众多混合模式供选择,但注意使用混合模式后会与绘制其上的其他 View 颜色混合像素. canvas.drawColor(Colors.pinkAccent, BlendMode.srcIn…
首先看下我们想要实现的效果如下图(qq聊天中发送图片时的效果): 再看下图我们实现的效果: 实现原理很简单,首先我们上传图片时需要一个进度值progress,这个不管是自己写的上传的方法还是使用第三方开源库,其次,需要自定义一个View并重写onDraw方法,此例中的进度是开启了一个线程,然后模仿进度递增,然后将进度值通过自定义View调用一个自定义方法传进自定义View并根据进度进行重绘. 绘制分为三部分: 1.绘制矩形(图片面积)上半部分阴影区: 2.绘制矩形(图片面积)下半部分非阴影区:…
上一篇介绍了自定义view需要知道的基本函数.新开一篇献给借给我vpn的深圳_奋斗小哥. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50492828 今天给大家介绍一个非常神奇的曲线,贝塞尔曲线.相信大家之前都有耳闻. 很久之前就久闻该线大名,但是一直不是很了解,在经过一番谷歌之后,有了初步的概念:三点确定一条曲线:起点,终点,辅助点. 三个点的基本关系如下: 当初看这图我也看了老半天,只知道是非常平滑,不知道三个点的具体关系,…
小菜继续学习 Canvas 的相关方法: drawVertices 绘制顶点 小菜上次没有整理 drawVertices 的绘制方法,这次补上:Vertice 即顶点,通过绘制多个顶点,在进行连线,多用于 3D 模型中: drawVertices 包括三个参数,第一个是顶点属性,根据不同属性线的连接方式也不同:第二个是混合模式,即线的颜色与背景色混合效果:第三个是画笔,小菜测试调整 Paint 线的粗细无法调整整体连线的粗细: 小菜借用 A B C D E F G H I 顶点来简单介绍: Ve…
自定义View的绘制流程一般都是这样:提前创建好Paint对象,重写onDraw(),把绘制代码卸载ondraw()里面,大致如下: Paint paint = new Paint(); @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 绘制一个圆 canvas.drawCircle(300, 300, 200, paint); } 复制代码 这里主要是学会Paint的几个基础Api和Canvas能…
自定义View增加属性第一步:定义属性资源文件 在/res/values 文件夹下建立"Values XML layout",按照如下定义一个textview的属性 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="name" format="reference"/> <attr name=…
今天学习了一些安卓开发中的自定义布局,编写了简单一个实例,“跟随手指移动的鸟”,需要两张图片,背景图片和鸟的图片,鸟的图片可以在屏幕中跟随手指的移动而移动. 1.将两张图片导入到mipmap中: 2.首先设置背景,用到了background方法,并设置其id: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.…
画布Canvas 在Android下进行2D绘图需要Canvas类的支持,它位于"android.graphics.Canvas"包下,直译过来为画布的意思,用于完成在View上的绘图. Canvas为提供了两个构造函数: Canvas():创建一个空的Canvas对象. Canvas(Bitmap bitmap):创建一个以bitmap位图为背景的Canvas. 既然Canvas主要用于2D绘图,那么它也提供了很多相应的drawXxx()方法,方便我们在Canvas对象上画画,dra…
转载请注明出处:http://blog.csdn.net/baiyuliang2013/article/details/45535227 之前实现过html5版的钟表,html5也有一个画板属性Canvas,相对于安卓的Canvas来说html5的功能要强大的多,就拿钟表的实现,html5要方便简单的多,而安卓实现起来则非常复杂,像指针转动,html5可以画一条线,然后可以用这条线旋转一个弧度即可,而安卓必须是已知起点坐标和终点坐标,这就需要精确计算起始坐标了.先看下效果图,因为是图静态的,动态…
转自:https://www.gcssloop.com/customview/CustomViewIndex/ 1.坐标系 2.角度弧度 3.颜色 一.屏幕坐标系和数学坐标系的区别 由于移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向, 所以在手机屏幕上的坐标系与数学中常见的坐标系是稍微有点差别的,详情如下: (PS:其中的∠a 是对应的,注意y轴方向!) 实际屏幕上的默认坐标系如下: PS: 假设其中棕色部分为手机屏幕 二.View的坐标系 注意:View的坐标系统…
小菜前几天整理了以下 Canvas 的部分方法,今天小菜继续学习 Canvas 第二部分. drawXXX drawShadow 绘制阴影 drawShadow 用于绘制阴影,第一个参数时绘制一个图形 Path,第二个是设置阴影颜色,第三个为阴影范围,最后一个阴影范围是否填充满: canvas.drawShadow( Path() ..moveTo(30.0, 30.0)..lineTo(120.0, 30.0) ..lineTo(120.0, 60.0)..lineTo(30.0, 60.0)…
Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近撸了一个圆形进度条的开源项目,算是第一次完完整整的使用自定义 View .在此对项目开发思路做个小结,欢迎大家 Star 和 Fork 该项目总共实现了三种圆形进度条效果 CircleProgress:圆形进度条,可以实现仿 QQ 健康计步器的效果,支持配置进度条背景色.宽度.起始角度,支持进度条渐…
前言 在上一篇文章中,已经总结了MotionEvent以及多点触控相关的基础理论知识和常用的函数.本篇将通过实现单指拖动图片,多指拖动图片的实际案例来进行练习并实现一些效果,来理解前面的理论知识.要理解本文的代码,需要先掌握上一篇的理论知识,事件处理基础,以及一定的自定义View基础,这些我也在本系列文章的前几篇中讲过,有兴趣的可以按照本系列的顺序依次阅读学习,相信您一定会有不小的收获.. 一.实现单指拖动图片 要实现单指拖动图片,大致思路就是监控手指的ACTION_MOVE事件.手指移动过程中…
前言 在前面的文章中,介绍了不少触摸相关的知识,但都是基于单点触控的,即一次只用一根手指.但是在实际使用App中,常常是多根手指同时操作,这就需要用到多点触控相关的知识了.多点触控是在Android2.0开始引入的,在现在使用的Android手机上都是支持多点触控的.本文将对常见的多点触控相关的重点知识进行总结,并使用多点触控来实现一些常见的效果,从而达到将理论知识付诸实践的目的. 一.触摸事件感应的产生原理 在介绍多点触控前,我们先了解一下现在手机屏幕触摸事件感应的原理. 当前手机使用的屏幕一…
自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/Mr-XiaoLiang 自定义控件三部曲 http://blog.csdn.net/harvic880925?viewmode=contents Android 从0开始自定义控件之View基础知识与概念 http://blog.csdn.net/airsaid/article/details/5…
Android精选源码 一个爬取美女图片的app Android高仿抖音 android一个可以上拉下滑的Ui效果 android用shape方式实现样式源码 一款Android上的新浪微博第三方轻量级客户端 android仿支付宝首页的头部伸缩动画源码 [原创]高仿饿了么3.0版本点餐页面 自定义View和属性动画实现指示点效果 android仿人人车可伸缩效果源码 android一个简单的天气预报项目源码 Android优质博客 Android地址选择器 类似于京东的地址选择 简介最近东西写…
前面两篇博客,把View绘制的方法说了一下,但是,我们只在onDraw里面做文章,控件都是直接传入一个Context,还不能在布局文件里使用自定义View.这一篇博客,就不再讲绘制,在我们原先的基础上,真正实现一个可用的View. 工具类:ViewHelper(View处理常用方法封装) 安卓自定义控件(一)Canvas.Paint.Shader.Xfermode 安卓自定义控件(二)BitmapShader.ShapeDrawable.Shape 安卓自定义控件(三)实现自定义View 方案:…
转载:https://blog.csdn.net/wsyizmao/article/details/78491422 浅谈安卓自定义view(一):制作一个最最最简单的自定义view 对于安卓程序员来说,自定义view简直很重要,毕竟有很多功能,譬如圆形头像这些,用单纯的原生非常难以实现,而用自定义view,简直分分钟. 在这里,我尝试用最简单方式跟初学者说一下如何自定义一个自己的view~ 首先,最简单最简单的自定义view,有多简单?简单到没有逻辑,没有任何自带属性,只是简单展示, 譬如,我…
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从自定义View利器Canvas和Paint来进行详解 一.Canvas 为了后文更为方便的讲解Canvas的常用方法的使用,我们先来做一些准备工作,创建一个自定义View框架,先初始化一下Paint画笔,并设置相关方法: public class StudyView extends View { private Paint mPaint; private Contex…
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 [ 3.重写onMesure ] 4.重写onDraw 我把3用[]标出了,所以说3不一…
绘制基础 参考:HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础 Paint详解 参考:HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解 关于颜色的三层设置 直接设置颜色的 API 用来给图形和文字设置颜色: setColorFilter() 用来基于颜色进行过滤处理: setXfermode() 用来处理源图像和 View 已有内容的关系. 颜色渐变用Shader,用图像来填充用BitmapShader,颜色与图像的叠加用…
首先要提前声明一下,我对于自定义View的理解并不是很深,最近啃了几天guolin博主写的关于自定义View的博客,讲的非常棒,只不过涉及到源码和底层的一些东西,我自己就懵逼了,目前只是会了关于自定义View的简单使用,不过还是要写出来,当做练习了,哈哈~对于一些没有接触过的初学者,希望会有所帮助,共同成长: 按类型,自定义View可以分为三种:自绘控件.组合控件.继承控件,对于这三种类型,我会写三篇博客来分别介绍和使用. 自定义View中有三个非常重要的方法,分别为: onMeasure():…
这几天比较受关注,挺开心的,嘿嘿. 这里给大家总结一下学习自定义view的一些技巧.  以后写自定义view可能不会写博客了,但是可以开源的我会把源码丢到github上我的地址:https://github.com/githubwing 每一篇博客都是建立在之前博客的基础知识上的,如果你刚接触自定义view.可以来说说自定义view简单学习的方式这里看我以前的文章.记录了我学习自定义view的过程,而且前几篇博客或多或少犯了一些错误(重复绘制,onDraw里new对象等等).这里我并不想改正博文…
滑动是Android开发中非常重要的UI效果,几乎所有应用都包含了滑动效果,而本文将对滑动的使用以及原理进行介绍. 一.scrollTo与ScrollBy View提供了专门的方法用于实现滑动效果,分别为scrollTo与scrollBy.先来看看它们的源码: /** * Set the scrolled position of your view. This will cause a call to * {@link #onScrollChanged(int, int, int, int)}…
站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05…
目录 安卓进阶之自定义View 自定义View的工作流程和内容 工作流程 测量阶段和布局阶段的工作内容 View 和 ViewGroup 在测量阶段和布局阶段的区别 绘制阶段的工作内容 上手:实现继承View的自定义View 上手:自定义ViewGroup 补充: 绘制内容的关键点 安卓进阶之自定义View 自定义View,可以分为具体的三大类: 自定义View(继承系统控件/继承View) 自定义Viewgroup(继承系统特定的Viewgroup/继承ViewGround) 自定义组合控件…