Android (基础自定义组件)viewpagertap滑动器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android (基础自定义组件)viewpagertap滑动器相关的知识,希望对你有一定的参考价值。
参考技术A 视频地址: http://www.imooc.com/learn/6152.1.1主要定义画笔、三角形使用path来实现。接着定义三角形的大小(宽高)以及初始化位置。
2.1.2设置mInitTranslationX参数,表示三角形初始化的位置,相当于marginLeft,计算方式是:
mInitTranslationX = 一个tab的宽度 - 三角形宽度的/2
2.1.3设置mTranslationX参数,表示每一移动一个tab时,三角形需要平移的宽度,如图:
2.1.4 mTabVisibleCount,自定义属性,布局中要显示几个tab,如上图4个tab
2.2.1构造中主要获取自定义属性值,默认为4;以及设置画笔
2.3.1三角形的宽度 = 一个tab宽度的1/6;如果觉得宽度的大小不合适, 可以改变1/6这个常量的比例
2.3.2三角形的高度 = 高度/2如图:
2.4.1重写父类dispatchDraw方法,此方法在invalidate()时,会重新执行
2.4.2通过 canvas.translate()设置三角形所在位置;X轴(上去看2.1.3),Y轴为但前组件的高度(最底部)。以及调用drawPath()方法使用画笔。
2.5.1如标题主要是通过viewpager的position和positionOffset来计算mTranslationX的值;再通过scrollTo方法来平移但前组件,最后通过invalidate()方法重绘布局
2.5.2剩下的就是一些算法和逻辑判断
2.6.1获取viewpager,监听viewpager的滑动事件,自定义setScroll方法(2.5的方法)将但前position和滑动偏移量传进去
2.6.2在此次以及监听的viewpager的滑动事件,如果外界也需要监听当前viewpager的话,会起冲突;此时就需要设置回调,对外提供接口
2.6.3setTextHighLight()方法设置选中的tab为高亮颜色
2.7.1获取list集合,将每一个item设置成一个textview,再通过setTextItemOnclickEvent()方法设置点击事件
3.1app:visible_tab_count自定义属性;如果不设置默认为自定义组件的COUNT_TAB_VISIBLE变量值
http://pan.baidu.com/s/1qYGUTAW
http://pan.baidu.com/s/1slpi5v3
以上是关于Android (基础自定义组件)viewpagertap滑动器的主要内容,如果未能解决你的问题,请参考以下文章