Android 自定义View与绘图基础
文章平均质量分 65
该专栏包含了自定义View 、自定义View属性与一些简单的绘图基础,有仿360水纹球、柱状图、折线图等的绘制,实例丰富,分享给大家!
danfengw
这个作者很懒,什么都没留下…
展开
-
Android 自定义日历控件
跟着强哥的这篇文章顺便学习了一下:Android Studio 上传 Library 至 Jcenter 生成依赖的两种方式 http://blog.csdn.net/lv_fq/article/details/72567208然后把自己自定义的控件传到jcenter上了强哥的文章总结的还是很好的。 compile 'com.danfeng:CalendarView:1.0.1'思路先来理一下自原创 2017-05-26 14:00:56 · 4727 阅读 · 3 评论 -
Android 自定义View——动态进度条
效果图: 这个是看了梁肖的demo,根据他的思路自己写了一个,但是我写的这个貌似计算还是有些问题,这个过程还是有点曲折的,不过还是觉得收获挺多的。比如通动画来进行动态的展示(之前做的都是通过Handler进行更新的所以现在换一种思路觉得特别好),还有圆弧的起止角度,矩形区域的计算等!关于绘制我们可以循序渐进,比如最开始先画圆,然后再画周围的线,最后设置动画部分就可以了。不多说了,上代码了。代码原创 2016-12-16 11:50:41 · 4855 阅读 · 25 评论 -
Android StepView物流进度
之前看了一个别人写的物流进度的demo,自定义View用的挺好的,但是感觉太麻烦了,就自己写了一个简单的,思路很简单,上面是效果图。思路思路:主要是进行了动态添加,根据上面的效果展示,创建一个子布局,如下图所示(代码里面的布局图一个ImageView一个View一个TextView),然后自定义一个MyVerticalView继承LinearLayout(注意设置orientation),在MyVe原创 2016-12-14 14:57:08 · 6947 阅读 · 3 评论 -
Android 自定义数字键盘(一)
看了一个自定义键盘的Demo感觉比网上那种自己绘制的那种要方便很多,就学习了一下,刚开始觉得应该挺麻烦的,还继承一个KeyBoardView,不过学习完了觉得还好,至少还能看懂,另外感觉收获还是挺多的。自定义键盘键盘布局先从简单的可以理解的看吧,循序渐进 horizontalGap:按键间的水平间隔 keyHeight:按键高度以%或者%p结尾 keyWidth:按键宽度,”33.33333%原创 2016-12-22 18:11:50 · 5932 阅读 · 5 评论 -
Android 自定义数字键盘(二)随机数字
先看Android 自定义数字键盘(一) 将下面部分代码复制到自定义的继承KeyboardView的类里面,使用时设置是否为true就可以了private List<Character> keylabels= Arrays.asList('0','1','2','3','4','5','6','7','8','9'); public void setRandomKeyBoard(boole原创 2016-12-23 11:02:50 · 2289 阅读 · 1 评论 -
Android 自定义数字键盘(三)自定义输入框
Android 自定义数字键盘(一) Android 自定义数字键盘(二)随机数字 Demo地址:https://github.com/danfengfirst/KeyDemo 这篇博客是在上面两篇博客的基础上修改的一个相对比较完整的demo,写完前面两篇我尝试使用过用pop弹出界面,但是焦点方面总是有问题,就参考了梁肖的思路,改用了Activity,为了思路清晰,没有给输入框自定义属性原创 2016-12-27 17:05:04 · 4419 阅读 · 4 评论 -
Android 项目(一):自定义View绘制“折线图”
都说不要造轮子不要造轮子,可是我还是在不停的造轮子啊!!!闲话不多说了看看上面折线图的效果(Ps:当然了如果有现成的例子或者是开源的东西最好还是参考别人的或者是开源的,毕竟自己自定义view好看是好看但是太耗费时间很多东西需要自己去慢慢调试)。 如果你有了一定的android基础,建议在绘制上面的折线图之前还是仔细观察一下,有了自己的思路再来看下面的博客。 通过上面的效果图可以看出画布的原创 2015-10-13 22:25:24 · 8465 阅读 · 4 评论 -
Android 项目(一):自定义View绘制“柱状图”
为什么要绘制柱状图?这是因为在有些应用中需要展示数据,单纯的列出一些数据估计谁看了都会烦,因此数据的展示通常会使用一些图表的形式展现出来。 上面的柱子是怎样绘制的呢?先来梳理一下思路:通过上面的图片展示可以看出来,需要一个白色的背景+一个留有上下边距的矩形区域+顶部空白处的文本+底部空白处的文本+中间的柱形图(实际上是绘制的线,线的画笔给的宽了一点,你也可以采用绘制矩形的方式只是绘制矩形需要左原创 2015-10-13 18:58:25 · 3516 阅读 · 6 评论 -
Android—— 三步实现自定义ViewGroup
在学习过了 Android 绘图基础:Path(绘制三角形、贝塞尔曲线、正余弦) 和 Android 绘图进阶:仿360水纹进度球(可动正余弦曲线+xfermode) 这两部分之后,学会了怎样实现一个自定义的View,现在我们还可以更进一步的实现自定义ViewGroup了。一、自定义ViewGroup 刚开始听说自定义ViewGroup的时候我还不理解什么叫做自定义ViewGroup,我们知道自定原创 2015-09-20 10:43:05 · 1059 阅读 · 0 评论 -
Android 绘图进阶:Canvas绘制联系人侧滑列表(drawText+监听者模式)
上面展示的是效果图,我们平时使用的通过点击字母就能找到相关字母的联系人,这就是我们想要达到的效果。思路与步骤 根据我们想要实现的效果,我们先要理一理思路,所有的编程都是这样,有了清晰的思路才能确定每一步我们具体要做什么。 首先我们想要出现手机联系人的效果,就要先绘制右侧的字母,再对屏幕的手势滑动进行监听,使字母在被点击时变色,然后是我们的布局中的TextView内容的改变,这里TextVie原创 2015-09-17 23:16:40 · 1400 阅读 · 0 评论 -
Android 绘图进阶:仿360水纹进度球(可动正余弦曲线+xfermode)
在 Android 绘图基础:Path(绘制三角形、贝塞尔曲线、正余弦) 这篇博客中我们已经实现了可动的正余弦曲线,在学习了PorterDuff的Xfermode设置画笔风格后我们只需要在可动正余弦曲线的基础上进行修改即可。思路 要在上次可动正余弦曲线的基础上实现仿360的水纹进度球,最不太好做的是将我们的正余弦曲线进行闭合。也就是下面这部分代码。mpath.reset(); //原创 2015-09-18 22:49:28 · 1768 阅读 · 0 评论 -
Android 绘图进阶(四):自定义View属性(灰常重要)
学会绘制自定义的View实际上是非常重要的,在以后的实际开发中我们会有许多地方使用到我们自制的View,因此学好绘图还是很有用处的。既然我们自定义了我们的View就要学着为自定义的View设置一些属性。 这里我们接着Android 绘图进阶(二)对我们自定义的View进行自定义它的属性。自定义View属性自定义View属性需要进行下面几步: 1、在res/values文件夹下创建xml文件,原创 2015-09-18 22:40:47 · 1256 阅读 · 0 评论 -
Android 绘图进阶(三):Xfermode绘制图片的保存
本篇博客是承接上一篇Android 绘图进阶(二):Xfermode绘制涂层博客继续写进行的。在上次的内容中我们事先了一种涂层的效果,可以使用手指滑动,显露底层的背景图片,如果绘制的图片我们想要进行保存,就好像我们平时上传图片,将不想被别人看到的信息进行马赛克,之后需要进行图片的保存再上传到网络上面,那么我们要怎样实现呢? 首先在布局中添加一个Button用于保存图片,之后我们通过对Butto原创 2015-09-18 22:05:43 · 1060 阅读 · 2 评论 -
Android 绘图进阶(二):Xfermode(画笔风格)绘制涂层
如果你对PorterDuff与Xfermode不够了解可以参看我之前的博客Android 绘图进阶(一),上篇博客介绍了Xfermode的SRC_IN的画笔风格的使用实例,这篇博客介绍一下它的一种涂层效果(XOR)。方案一:圆形画板擦一、思路 根据graphic图我们可以使用看出Xor效果实现的就是相交部分会露出底部图片。因此我们需要设置一个底部的背景(BitmapBackground),我是原创 2015-09-18 10:05:33 · 1657 阅读 · 0 评论 -
Android 绘图进阶(一):PorterDuff与Xfermode(画笔风格)仿QQ圆形头像
之前就看到有人在问QQ头像的圆形头像是怎样制作的,今天学习到绘图方面的xfermode才知道原来QQ头像是通过它来绘制的,感觉它所能实现的效果还是很不错的。一、Xfermode简单介绍Xfermode有三个子类 : AvoidXfermode 指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图)。PixelXorXfermode 当覆盖已有的颜色时,应用一个简单的像素异或原创 2015-09-17 22:32:58 · 1870 阅读 · 0 评论 -
Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)
Android的Matrix利用数学原理实现图片平移、旋转等操作详解 很庆幸自己的线性代数学的还可以,理解Matrix的矩阵变换完全没有问题。Matrix矩阵实现图片的平移旋转等操作涉及到线性代数问题,感兴趣它的具体实现的话可以参考一下上面的博客,非常详细,非常好。如果不想深究也可以简单的理解为BitMap的像素点通过某种方式(Matrix)移动了相应的位置,这样就实现了图片的变换。不管怎样,原创 2015-09-17 22:27:11 · 8685 阅读 · 2 评论 -
Android 绘图基础:Path(绘制三角形、贝塞尔曲线、正余弦)
学习重点: 理解path的使用 理解贝塞尔曲线的绘制原理 可动正余弦的绘制Path的简单介绍 在 Android 绘图基础:Canvas画布——自定义View(绘制表盘、矩形、圆形、弧、渐变) 中我们可以看到Canvas的强大功能,其实Canvas还有一种绘图方式就是drawpath(),没有在上篇博客中写出这个方法就是想进行单独的介绍。我们通过Canvas 的其他方法只能绘制特定的图形,但原创 2015-09-17 21:33:51 · 13245 阅读 · 1 评论 -
Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)
今天学习了Canvas画布,感觉挺好玩的,通过它我们可以自定义一个View,设置View的相关效果之类的。感觉用法差不多,重要的是要理解方法中传入的参数的含义,比如float类型的参数,传递的是坐标,已开是没有注意传入的参数时坐标,导致我迷糊了一段时间,希望大家不要犯我的错误,记住是坐标啊!。一、Canvas画布介绍The Canvas class holds the “draw” calls. T原创 2015-09-16 22:33:21 · 6169 阅读 · 4 评论