- 浏览: 10493 次
- 性别:
- 来自: 邯郸市
文章分类
最新评论
有卡顿的现象(可能模拟器原因),滑动时没有渐变,设置一下渐变,主要是OnPageChangeListener中的onPageScrolled(int position, float offset, …),参数position表示当前页,offset表示位置偏移(0-1)。在函数中处理一下图标的透明度,实现渐变:
根据向哪个方向滑动(offset正负),和当前页(position),来计算一下每个图标的透明度,设置,刷新。还想加一个点击时的效果(水波反馈?)。类似于好多软件中的点击效果(UC菜单点击效果),简单实现原理,按下时画一个圆,半径逐渐扩大,抬起时半径逐渐减小。QEndBar中定义几个变量,boolean isDown,isUp,isMax;int downItem=-1;int colorItemDown;float radius=0;。onTouchEvent中:
根据点击位置设置一些状态。
onDraw中:
根据状态值画出想实现的效果,postInvalidateDelayed(25);延时刷新。比较乱,实现效果还凑合(一周弄了个底部栏,汗(-__-))。
注:这是一个.gif动图,ctrl点击图片查看。
if(position>=0&&position<=3){ if(offset>0){ alphaItem[position]=(int)(255-255*offset); alphaItem[position+1]=(int)(255*offset); if(position==0){ alphaItem[2]=0; alphaItem[3]=0; } else if(position==1){ alphaItem[0]=0; alphaItem[3]=0; } else if(position==2){ alphaItem[0]=0; alphaItem[1]=0; } else{ alphaItem[0]=0; alphaItem[1]=0; alphaItem[2]=0; } } else if(offset<0){ alphaItem[position]=(int)(255-255*offset); alphaItem[position-1]=(int)(255*offset); if(position==0){ alphaItem[1]=0; alphaItem[2]=0; alphaItem[3]=0; } else if(position==1){ alphaItem[2]=0; alphaItem[3]=0; } else if(position==2){ alphaItem[0]=0; alphaItem[3]=0; } else{ alphaItem[0]=0; alphaItem[1]=0; } } postInvalidate(); }
根据向哪个方向滑动(offset正负),和当前页(position),来计算一下每个图标的透明度,设置,刷新。还想加一个点击时的效果(水波反馈?)。类似于好多软件中的点击效果(UC菜单点击效果),简单实现原理,按下时画一个圆,半径逐渐扩大,抬起时半径逐渐减小。QEndBar中定义几个变量,boolean isDown,isUp,isMax;int downItem=-1;int colorItemDown;float radius=0;。onTouchEvent中:
case MotionEvent.ACTION_DOWN: isDown=true; radius=widthItem/4; isUp=false; touchX=(int)event.getX(); //记录点击位置 touchY=(int)event.getY(); if(Math.abs(touchX-positionItem[0])<widthItem/2){ itemDown=0; } else if(Math.abs(touchX-positionItem[1])<widthItem/2){ itemDown=1; } else if(Math.abs(touchX-widthAll/2)<widthItem/2){ itemDown=4; //点击中间图标 } else if(Math.abs(touchX-positionItem[2])<widthItem/2){ itemDown=2; } else if(Math.abs(touchX-positionItem[3])<widthItem/2){ itemDown=3; } postInvalidate(); break; case MotionEvent.ACTION_UP: isDown=false; isUp=true; ……
根据点击位置设置一些状态。
onDraw中:
paintOther.setColor(colorItemDown); int alpha=colorItemDown>>24; paintOther.setAlpha((int)(alpha*radius/widthItem*2)); if(isDown){ if(radius<widthItem/2){ if(itemDown==0){ canvas.drawCircle(positionItem[0], heightAll/2, radius, paintOther); radius+=widthItem/4/10; postInvalidateDelayed(10); } else if(itemDown==1){ …… } else if(itemDown==2){ …… } else if(itemDown==3){ …… } else if(itemDown==4){ …… } } else{ isMax=true; if(itemDown==0){ canvas.drawCircle(positionItem[0], heightAll/2, radius, paintOther); } else if(itemDown==1){ …… } else if(itemDown==2){ …… } else if(itemDown==3){ …… } else if(itemDown==4){ …… } } } else if(isUp){ if(!isMax){ if(itemDown==0){ canvas.drawCircle(positionItem[0], heightAll/2, radius, paintOther); radius+=widthItem/4/10; postInvalidateDelayed(10); } else if(itemDown==1){ …… } else if(itemDown==2){ …… } else if(itemDown==3){ …… } else if(itemDown==4){ …… } if(radius<widthItem/2){ isMax=false; } else{ isMax=true; } } else{ if(radius>widthItem/4){ if(itemDown==0){ canvas.drawCircle(positionItem[0], heightAll/2, radius, paintOther); radius-=widthItem/4/5; postInvalidateDelayed(10); } else if(itemDown==1){ …… } else if(itemDown==2){ …… } else if(itemDown==3){ …… } else if(itemDown==4){ …… } } else{ isUp=false; itemDown=-1; isMax=false; postInvalidateDelayed(10); } } }
根据状态值画出想实现的效果,postInvalidateDelayed(25);延时刷新。比较乱,实现效果还凑合(一周弄了个底部栏,汗(-__-))。
注:这是一个.gif动图,ctrl点击图片查看。
有志竟成——2016/10/28
发表评论
-
20、长图的加载显示
2017-06-18 16:24 546有时候图片很长,预览只是其一部分,有个类似按钮 ... -
19、GIF动图显示
2017-06-18 16:28 755有时候需要显示动图,可安卓有没有现成的控件,很 ... -
18、ListView显示图片
2017-06-18 16:23 456ListView显示 ... -
17、网络图片加载
2017-06-17 20:57 397如上节,有时候需要显示网络图片,QListVi ... -
15、ListView Item设置
2017-06-17 20:52 450当然想要ListView显示自定义的布局,显示 ... -
16、后台异步处理
2017-06-17 20:56 625大多时候,需要后台(异步)去执行一些费时操作。 ... -
14、自定义ListView
2017-06-13 22:05 658实现了显示的效果,接着来实现一些监听器(接口) ... -
13、自定义ListView
2017-06-13 21:58 479下拉刷新,上拉加载,很流行的啊,总的来说有两种 ... -
12、Dp Notes内容-列表(ListView使用)
2017-06-12 22:48 467完成了一些空架子,开始填内容,从列表开始吧(主 ... -
11、Dp Notes顶部导航栏
2017-06-10 23:05 443完成了底部导航栏,再来顶部导航栏(叫什么?菜单 ... -
9、Dp Notes底部导航栏
2017-06-10 11:41 496将ViewPager和QEndBar结合起来, ... -
8、Dp Notes底部导航栏
2017-06-07 21:59 591实现了点击切换效果(只是图标状态变化),如何结 ... -
7、Dp Notes底部导航栏
2017-06-07 21:58 526想要的图标呢?怎么弄上去。从网上找了几个图标, ... -
6、Dp Notes底部导航栏(自定义控件(View))
2017-06-05 21:40 557已经看到了安卓的一角,正式开始Dp Notes ... -
5、控件美化(drawable使用)
2017-06-04 11:19 629先前的回复页面虽然搭好了,功能也实现了,但页面 ... -
4、第一行代码
2017-06-03 09:12 624上节完成了回复功能的页面搭建,可是想要的功能并 ... -
3、基本控件
2017-06-03 09:01 510控件,很好 ... -
2、你好,世界
2017-06-01 20:23 428开发一个安 ... -
1、初衷
2017-05-31 21:18 338接触安卓已经有一段时间了,从一开始接触J2M ...
相关推荐
MPX10DP压力传感器检测电路设计.pdf
app底部导航栏 使用: 添加依赖 1.项目gradle添加一下配置: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 2.module中的gradle添加依赖: dependencies { implementation '...
很好的r5f10dpg英文PDF技术资料,最新版技术。
以前做项目大多用的radiobutton,今天用tablayout来做一个tab切换页面的的效果. 实现的效果就是类似QQ.微信的页面间(也就是Fragment间)的切换.如图: ... app:tabIndicatorHeight=0dp//将指示器去掉
DP83848C / I / VYB / YB PHYTER™QFP单端口10/100 Mb / s以太网物理层收发器 从–40°C到105°C的多个温度范围•IEEE 802.3 ENDEC,10BASE-T收发器和 • 低功耗3.3V,0.18μmCMOS技术 • 低功耗(典型值) • 3.3V ...
区间DP概率DP树形DP插头DP,每种DP一道典型例题,有助于初学者
得宝 迪普乐DP-F850 DP-F650 DP-F620 DP-F550 DP-F520 制版印刷一体机 维修手册
蓝牙A2DP最新协议版本,A2DP_v1.3.2.pdf;蓝牙A2DP最新协议版本,A2DP_v1.3.2.pdf;蓝牙A2DP最新协议版本,A2DP_v1.3.2.pdf;蓝牙A2DP最新协议版本,A2DP_v1.3.2.pdf;蓝牙A2DP最新协议版本,A2DP_v1.3.2.pdf;蓝牙A...
《HDP-10+PROFIBUS+DP现场总线适配模块用户手册》.pdf
BubbleTabBar BubbleTabBar是底部导航栏,带有可自定义的气泡(如标签)用法 < ...
DP225-win10系统驱动,找了多个驱动,就这个驱动能够用!
1. 同一项目中S7-1200 与 S7-300 集成 DP 口之间 DP 主从通信,S7-1200 通过CM1243-5作为 DP 主站,S7-300 集成 DP 口作为 DP 从站; 2. 不同项目中S7-1200 与 S7-300 集成 DP 口之间 DP 主从通信,S7-1200 通过CM...
DP4-PR1K/DP4-PR600/DP4-PR10K 上下限报警继电输出, 具有报警设定数据功能, 可带RS-485/RS232计算通讯, 光电隔离变送器输出4-20MA
VESA官网的DP1.4标准协议
DP接口介绍 1、 DP接口简介 2、 DP接口分类 2.1 标准DP接口 2.2 Mini-DP接口 3、 DP版本迭代 3.1 DP 1.0版本 3.2 DP 1.1a版本 3.3 DP 1.2版本 3.4 DP 1.3版本 3.5 DP 1.4版本 3.6 DP 2.0版本 3.7 版本对比 4、 DP...
威卡DP-10差压变送器产品手册zip,威卡DP-10差压变送器产品手册 文档介绍威卡通用型压力变送器的应用,特性,产品结构,技术参数,外形尺寸,接线等方面的内容。
2 DP软件的文件结构 4 2.1 DP软件的配置信息 4 2.2 DP软件的执行程序 4 2.3 DP软件的内部数据库 4 3 DP软件的后台进程 5 3.1 DP软件的自动启动配置 5 3.2 DP软件的手工启动方法 5 3.3 DP软件的后台进程 5 4 DP软件...
Android 蓝牙 A2dp 听歌卡音?audio数据到a2dp通道流程解析----A2dp流控原理(Acl Flow Control),一文搞懂蓝牙卡音问题处理
ASL CS5523是MIPI DSI输入、DP/e DP输出转换芯片。MIPI DSI最多支持4个通道,每个通道的最大运行速度为1.5Gps。对于DP 1.2输出,它由4个数据通道组成,支持1.62Gbps和2.7Gbps的链路速率。支持1.62Gbps和2.7Gbps的...
GSD EC1-DEB-DPM Elau