期末到了,又到了评教的时刻,是时候展示曾经学的JS功底了,这里以推荐谷歌浏览器去评教,首先到进入到评教页面,点击老师后弹出新的页面,如下图所示:
自定义View(一)(Android群英传)
内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出。
Android给我们提供了丰富的组件库来创建丰富的UI效果,同时也提供了非常方便的拓展方法。通过继承Android的系统组件,我们可以非常方便地拓展现有功能,在系统组件的基础上创建新的功能,甚至可以直接自定义一个控件,实现Android系统控件所没有的功能。自定义控件作为Android中一个非常重要的功能,一直以来都被初学者认为是代表高手的象征。其实,自定义View并没有想象中的那么难,与其说是在自定义一个View,不如说是在设计一个图形,只有站在一个设计者的角度上,才可以更好地创建自定义View。我们不能机械地记忆所有绘图的API,而是要让这些API为你所用,结合现实中绘图的方法,甚至是PhotoShop的技巧,才能设计出更好的自定义View。
ViewGroup的测量与绘制(Android群英传)
View的绘制(Android群英传)
内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出。
当测量好了一个View之后,我们就可以简单地重写onDraw()方法,并在Canvas对象上来绘制所需要的图形。首先我们来了解一下利用系统2D绘图API所必须要使用到的Canvas对象。
要想在Android的界面中绘制相应的图像,就必须在Canvas上进行绘制。Canvas就像是一个画板,使用Paint就可以在上面作画了。通常需要通过继承View并重写它的onDraw()方法来完成绘图。
View的测量(Android群英传)
内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出。
Android系统在绘制View之前也必须对View进行测量,即告诉系统该画一个多大的View。这个过程在onMeasure()方法中进行。
Android系统给我们提供了一个牛逼的类—-MeasureSpec类,我们可通过它来测量View。MeasureSpec是一个32位的值,其中高两位为测量的模式,低30位为测量的大小,在计算中使用位运算当然是提高运行速率了。
Android控件架构(Android群英传)
内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出。
控件大致被分为两类,ViewGroup控件和View控件。ViewGroup可以包含多个View并管理它们。通过ViewGroup,整个界面上的控件形成一个树形结构,也就是我们常说的控件树,上层控件负责下层子控件的测量与绘制,并传递交互事件。通常在Activity中使用findViewById()方法,就是在控件树中以树的深度优先遍历来查找对应元素。在每棵控件树的顶部,都有一个ViewParent对象,这就是整棵树的控制核心,所有的交互管理事件都由它统一调度和分配,从而可以对整个视图进行整体控制。View视图树如下图所示。
The Last ACM
大学最后一次的ACM,之前两次的一无所获也总算应了那句话,所有的事情到最后都会是好的,如果不是,说明还没到最后。在小伙伴们的不懈奋斗下和我突发其来的灵感和曾经的经验,终于水出了五道,从中也吸取了一定要细心细心再细心的教训,虽然只是铜奖,但也为我们学校破了这两年零蛋的魔咒,以后的就交给学弟学妹们了。当然我还是会继续喜欢Algorithms,还是会去刷像Leetcode这样好的OJ平台,当下的话继续深入学习安卓,搭建自己的框架,逛逛Github这个相用恨晚的平台。
带正则校验的EditText
这是好久之前写的了,现在整理下文章那就写一下吧,直接上演示Demo,如下所示,伸手党们可直接跳到最后去下载源码。
原理很简单,实现TextWatcher接口中的afterTextChanged()函数,根据正则表达式返回的结果来动态加载rightDrawable,至于校验成功或者失败的drawable用户在初始化的时候可以自定义,下面给出源码参考,其实现了常用的手机、座机、邮箱、url、汉字、用户名的校验,如果你觉得还不满足的话,最后还提供了用户自定义正则的校验,这样总满意了吧,下面给出其代码供参考。
Git的简单使用
1 | $ mkdir learngit |