Android-自定义-RecyclerView.LayoutManager
不得不说RecyclerView真的很强大,例如无限轮播Banner,滑动卡片等都有RecyclerView的版本,他们是怎么做的呢?答案是基于RecyclerView.LayoutManager,我们可以自定义RecyclerView.LayoutManager,然后控制RecyclerView内部Item的位置以及大小达到我们想要的效果,为了简单,我们先自定义一个RecyclerView.La…
不得不说RecyclerView真的很强大,例如无限轮播Banner,滑动卡片等都有RecyclerView的版本,他们是怎么做的呢?答案是基于RecyclerView.LayoutManager,我们可以自定义RecyclerView.LayoutManager,然后控制RecyclerView内部Item的位置以及大小达到我们想要的效果,为了简单,我们先自定义一个RecyclerView.La…
场景:经常在项目中高频使用按钮,比如 完成、下一步等有圆角且有按下效果的Button 思路:写个自定义Button,编写自定义属性,方便在xml中设置圆角,颜色等属性,按下的效果一般是用shape写背景方式完成,为了方便,shape不在xml编写,改为代码编写。 1.编写自定义控件: public class ShapeButton extends AppCompatButton { public…
什么是贝塞尔曲线 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。主要结构:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。 展示:一阶贝塞尔曲线(线段)…
偶然间在SDK目录下看到IntentService这个类,于是使用了一番,就使用场景来说很多,比如APP启动时,做一些初始化操作,或者一些需要后台处理的耗时任务,看到这里你不要误会,因为IntentService并非在主线程运行,以下是源码,你也可以在Sdk\sources\android-26\android\app 目录下找到: /* * Copyright (C) 2008 The Andr…
因为RecyclerView越来越普及,使用场景也越来越多,所以在如此高频使用的情况下,分割线也是必不可少的,但是我们经常在不同的场景下使用,对分割线的需求也不一致,导致自己手动编写的分割线并不能满足日常需求,所以我比较常用的做法是在Item布局中编写分割线,久而久之还是觉得用着不方便,索性就写一个扩展性好一点的分割线吧。 使用示例: //线粗细1dp,线两边边距10dp,线颜色红色 rl.add…
记得以前还没有RecyclerView的时候,做拖拽排序很麻烦,而现在因为RecyclerView的诞生,很多复杂的操作都可以完美实现了,例如轮播、流式布局等等。 先写一个简单的RecyclerView例子,然后慢慢拓展吧。 public class MoveItemActivity extends AppCompatActivity { private RecyclerView rl; priv…
眼看6月到了,由于前段时间域名备案等原因,服务器关闭了差不多一个月,所以没更新文章,索性今天补一篇吧,准备写一个简单的自定义View,就拿进度条做这个需求吧,虽然简单,但是也包含了基本自定义View的几要素,比如自定义属性、重写测量、重写绘制等功能。 ## 需求分析: 1.进度通过绘制线条实现。 2.进度文字跟随当前进度实时变化,并非一直显示在固定位置。 3.控件未给出宽高属性时,我们需要给出默认…
先上几个评测脚本: 性能评测脚本: wget -qO- bench.sh | bash 虚拟技术评测脚本: wget -N –no-check-certificate https://raw.githubusercontent.com/91yun/code/master/vm_check.sh && bash vm_check.sh 路由追踪测试软件: Best Trace 1….
自从Android推出Design后,就广受各位开发者的喜爱,因为以前很多高级特效都需要我们自己去写,而现在Design库内置类很多实用的控件,很多复杂的需求用设个库就能满足,记得以前写自定义控件就经常遇到触摸事件方面的问题,比如外层ViewGroup将事件拦截后,在通过某些特定操作后,将事件还给内部子View处理,这种事件处理就很麻烦,因为在一次事件中外部ViewGroup一旦拦截了事件,子类就…