![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
自定义view学习系列
安卓小小鸟
量变引起质变,要想弥补你的不足,只有比别人更加努力
展开
-
自定义view学习系列之圆形进度条
工作后,人都变懒了。。。。好久不更新博客了,最近工作中发现不记录一些常见问题或者是不做个学习记录的话,进步很小,于是今天又提起笔来写写博客吧。争取以后有机会就写写。还是自定义view吧,之前公司有个需求是圆形评分,界面类似这样,把中间的想象成10分。这种界面很常见,很简单(当然要做的扩展性和适用性很好的话也不容易)。原创 2015-09-26 00:14:58 · 564 阅读 · 0 评论 -
我重写了onInterceptTouchEvent(ev)方法,但是为什么Action_Move分支没执行?浅析安卓事件分发。
前言说到安卓的事件分发,大多数人都很难说的很清楚,当然也包括我,之前只是记住了几个结论,什么隧道传递,冒泡处理,什么 dispatchxxx是用来传递事件的,onInterceptxxx是用来拦截事件的,onTouch事件是用来处理事件的,说的门门是道,但是在自己实现逻辑的时候依然会遇到比较懵逼的问题。 现在有做一个需求,是图片的下拉关闭功能,现在很多app都有这个功能,体验性很好,就像下面...原创 2018-07-18 20:19:17 · 3898 阅读 · 1 评论 -
自定义View实现轮播层叠View
照例,先上图片看效果 github上倒是有不少类似的效果库,不过对于这个功能来说,多少有点写的复杂,我们没必要因为这个功能区down一个库下来,所以,自己动手,丰衣足食。仿写的Adapter模式~ViewGroup的选择自定义ViewGroup无外乎两个重要的方法,onMeasure()和onLayout(); 至于其中含义,可参考网上资料。 看过github上的一些库,大部分是...原创 2018-07-16 15:48:10 · 1575 阅读 · 0 评论 -
PorterDuffXferMode不正确的真正原因PorterDuffXferMode深入试验)
菜鸡wing遇敌PorterDuffXferMode,不料过于轻敌,应战吃力。随后与其大战三天三夜,三百余回合不分胜负。幸得 @咪咪控 相助,侥幸获胜。关键字:PorterDuffXferMode 错误 不正确 不达到预期 bug上一篇带来一个使用PorterDuffXferMode 做的 水波纹loadingview,中间遇到了点小困难。(转载 2017-05-10 16:24:20 · 393 阅读 · 0 评论 -
android canvas layer (图层)详解与进阶
1 概述前面的canvas变换文章中,已经粗略的讲解过saveLayer的知识,只是图层的概念没有详细的讲解。这里将详细讲解layer。在使用相关方法和flag的时候,先关闭硬件加速。如果需要开启,参照谷歌官方的硬件加速表格。硬件加速版本2 saveLayersaveLayer可以为canvas创建一个新的透明图层,在新的图层上绘制,并不会直接绘制到屏幕上,而会在resto转载 2017-05-10 14:51:57 · 1659 阅读 · 0 评论 -
三种方式实现圆角图片
最近在学习自定义view的时候看见了几个方法,一个是clipxxx(),一个是setShader(),一时有点懵,学习了一下,感觉还是很简单的,和xfermode有异曲同工之妙,所以写了个demo,来看看最基本的方法 为了表现最基本的用法,不考虑图片的适配缩放,不考虑内存泄漏等情况,给最直观的用法clipxxx()实现圆角图片 private void drawRoundImageByPath()原创 2017-05-18 18:18:14 · 3681 阅读 · 0 评论 -
Canvas API详解(Part 2)剪切方法合集
在Android自定义View使用绘图的裁剪功能的时候,我们最好manifest中的 或者或者标签中添加如下属性android:hardwareAccelerated="false"因为裁剪功能是不支持硬件加速的.没有设置的话,有可能绘图裁剪的效果出不来;Android原生api裁剪方法中clipRect和clipPath方法中,有的不传递Region.Op参数,其转载 2017-05-17 20:35:05 · 363 阅读 · 0 评论 -
Android Canvas的save(),saveLayer()和restore()浅谈
save() saveLayer() restore()1.在自定义控件当中你onMeasure和onLayout的工作做完成以后就该绘制该控件了,有时候需要自己在控件上添加一些修饰来满足需求复写onDraw(Canvas canvas),其中Canvas就像是一块画布,你自定义控件的样式就是在它上面完成的。Canvas ,Paint等基本概念就不赘述了。2.下面就转载 2017-05-09 14:02:36 · 293 阅读 · 0 评论 -
反驳有关博客关于PorterDuffXfermode的讲解
这个标题口气是真大,没办法,讲解这个的博客太多了,而且好多有误导性,有些自己都不知道为啥,还写博客,抄来抄去的。当然了,很多人写的还是很好的,但是感觉还是没有理解PorterDuffXfermode的用法以及为啥和官方demo的不一样的原因,所以写了该博客。 主要参考博客以及反驳博客是 http://blog.csdn.net/iispring/article/details/50472485原创 2017-05-11 14:35:14 · 530 阅读 · 0 评论 -
一个简单的自定义View 大风车
先上效果图 附代码package view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphic原创 2017-03-30 17:44:33 · 338 阅读 · 0 评论 -
自定义TabLayout的实现
前言项目需要做一个选项卡的功能,很简单,就是点击切换的效果,公共有这个控件,但是不太符合业务需求,所以自己花了半小时写了一个,很简单,继承自linearLayout,支持预置选择哪个选项卡,支持显示红点,支持选择回调。 项目很简单,一直在纠结要不要写博客,最后为了坚持还是写了,毕竟万变不离其宗,复杂的效果也是简单的逻辑一个个堆砌起来的。写一下,希望也能帮助一些初学者效果图照例,我们先看效果图有一个原创 2016-08-24 18:56:43 · 4102 阅读 · 1 评论 -
关于九宫格密码的思考
关于九宫格密码的思考 网上有很多关于9宫格密码的资料,比如这篇博客,http://blog.csdn.net/abren32/article/details/48683625,还有视频学习资料,讲的都很好,但是对于我这种菜鸟来说,看起来还是有很多困难的,不知道是他们太牛了不用讲这些细节点还是我太笨了看不懂,我自己把这个代码写了一遍,发现很多小的知识点还是很重要的,对于初学者来说,搞清楚这些要比懂A原创 2015-10-05 18:45:52 · 1592 阅读 · 3 评论 -
为什么HorizontalScrollView嵌套一个子View,他的match_parent属性会失效,浅析View的测量工作
为什么HorizontalScrollView嵌套一个子View,他的match_parent属性会失效问题的抛出 我们在开发的过程中,经常会用到HorizontalScrollView,通常情况下我们还需要在里面嵌套一个ViewGroup,并将其设置为match_parent,但是这个属性一定是无效的。我们需要重新设置 fillViewport属性为true。这样才会得到我们要的效果。...原创 2018-08-19 22:04:06 · 1400 阅读 · 1 评论