最近项目需要加一个导航页,页面有个简单的指示器功能,本来这个东西ui用图画好就可以,但是那样的指示器是死的,小圆点不会随着页面的滑动而滑动。

我们需要的是上图这种效果。

这也很简单,网上一大推实现好的,随便找一个来用就好了;但是,有一个问题,网上的这类开源项目,要么会包含其他东西,要么支持的场景很多,导致代码很多,还有些项目会有些bug,看别人的代码解bug,痛苦你们懂的。寻思着,反正简单,就自己做,按照要求来,尽量不要那么臃肿。

首先,设计,需求是什么,需要哪些变量?

需求是需要根据页面滑动而滑动的指示器。

需要哪些变量?从上图,有3个静止不动的圆,还有一个不断滑动的圆。三个静止不动的圆需要的控制变量:x、y圆心坐标,圆的颜色emptyColor(有些人可能觉得需要3个x、y,其实不用),emptyPaint画笔;动态圆需要的控制变量:moveX、moveY圆心坐标,圆的颜色fillColor,fillPaint画笔;公共变量:radius圆半径(每个圆大小都一样),strokeWidth画笔宽度,divideWidth静止的圆之间的距离。

上述哪些变量是否够了呢?上面的变量足够画出指示器,但是还不够,指示器数量被限制在3个了,为了扩展性,还需要加一个变量circleCount静止的圆个数;还有一个被忽略的参数:比例。一般动态圆从一个静止的圆滑动到另一个静止的圆时,页面要滑过页面,页面滑动的距离和动态圆滑动的距离有一个比例:ratio。这样变量基本完备了,下面是代码片段了。

囧,好像没找到简书中添加代码的选项...那复制吧

1、自定义属性

2、代码

3、使用

第一次在简书上发,用的富文本编辑,效果好像不是很好,下次尝试用Markdown试试。

android 不固定指示器,Android简单的页面指示器相关推荐

  1. Android Studio学习记录之简单的页面切换及宫格菜单

    Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西.有些东西听说 ...

  2. android头部固定悬停,Android开发上滑悬停且头部可刷新

    需求:上滑列表后推荐,小岛,专题置顶,可左右切换.因为头部有重要内容,所有头部出现且滑到顶之后,再下来可刷新头部内容 效果图: scroll1.jpg Screenshot_20200627_1341 ...

  3. android 拍照固定区域,android相机区域拍照,快速集成

    使用相机拍摄指定区域,自己封装了个工具类,直接使用就可以 代码使用如下 public class MainActivity extends Activity implements OnClickLis ...

  4. android listview固定内容,android ListView详解

    在android开发中ListView是非常重要的控件.我自己也还是一个小白,把自己的学习经验分享出来,希望可以帮到初学Android的朋友们.这也是我第一次写博客,我尽量将结构处理的好一些,也说的易 ...

  5. android app固定dp,Android屏幕适配—被偷走的dp

    一.Android手机屏幕DPI DPI概念自行百度 Android手机按照不同DPI分为:ldpi.mdpi. hdpi. xhdpi. xxhdpi等. 在不同的DPI上,px和dp有不同的比例关 ...

  6. android获取固定uuid,Android获取本机唯一序列号和可变UUID方法

    UUID+设备号序列号 唯一识别码(不可变) private String getMyUUID(){ final TelephonyManager tm = (TelephonyManager) ge ...

  7. android 手机固定mac,Android之获取手机MAC

    一种比较折衷的办法,在获取MAC地址之前先判断当前WiFi状态,若开启了Wifi,则直接获取MAC地址,若没开启Wifi,则用代码开启Wifi,然后马上关闭,再获取MAC地址. ​ 目前此方法测试成功 ...

  8. android 定义固定数组,Android 图片数组定义和读取

    位置:packages/apps/Launcher2 1.图片数组定义.资源读取 如果有多张图片,这些图片的使用与顺序无关,可以采取这种方式. drawable-nodpi中有3张图片,wallpap ...

  9. Android 第二十一课 RecyclerView简单的应用之编写“精美”的聊天页面

    1.由于我们会使用到RecyclerView,因此首先需要在app/build.gradle当中添加依赖库.如下: apply plugin: 'com.android.application' .. ...

最新文章

  1. ADO.NET 2.0 - 读者询问能否使用 SqlBulkCopy 对象来大量复制文字文件
  2. Python 闭包详解
  3. 通过libVirt抓取kvm虚拟机监控指标数据
  4. [转]ExecuteNonQuery()、ExecuteReader()、ExecuteScalar()的简单说明
  5. pwm波如何控制电机代码_柴油发电机机组的控制器该如何操作
  6. 如何用 Redis 实现延迟队列?
  7. SHA-1退休:数千万用户通向加密网站之路被阻
  8. [2.9训练]【CF909C】Python Indentation,【CF909D】Colorful Points,【CF909E】Coprocessor
  9. html5中音乐播放器怎么写,打造属于自己的音乐播放器 HTML5之audio标签
  10. python变量类型是动态的_python内存动态分配过程详解
  11. iceberg对接flinksql测试
  12. tensorflow 2.5.0 ( keras )搭建wgan-gp 和 div
  13. Py之Scipy:Scipy库(高级科学计算库)的简介、安装、使用方法之详细攻略
  14. 【rmzt:天使的向往win7主题】
  15. 量子十问之四:“薛定谔猫”为什么会自然死亡?
  16. Excel的一些实用函数(if函数,vlookup函数,match函数)
  17. ping 命令的实现
  18. Linux的开源免费办公软件,OpenOffice——轻量级的开源办公软件套件(适用于win+mac+linux)...
  19. 《2006_ICPR_Low Resolution Character Recognition by Image Quality Evaluation》阅读笔记
  20. OpenCV-飞龙绣球识别

热门文章

  1. 分治算法的设计思想(二分检索、二分归并排序)
  2. Redis概述和基础
  3. LeetCode简单题之检查两个字符串数组是否相等
  4. ALD和CVD晶体管薄膜技术
  5. 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据
  6. 在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库
  7. CPU的自动调度矩阵乘法
  8. javaWeb——Servlet
  9. Python:Spider
  10. android支付宝调用