android类似下抽屉的效果怎么实现

 我来答
阳光语言矫正学校
2017-11-14 · 让每个孩子都能正常讲话,是我们最大的心愿
阳光语言矫正学校
1992年开始语音病理学研究,北京、上海 、长春设有校区,功能性构音障碍、腭裂语音障碍、听力言语障碍、语言发育迟缓、口吃等多个语音矫正和训练项目,对大舌头 口吃等各种语言障碍有数万例矫正经验
向TA提问
展开全部
你说的效果实现可以分为两个部分:
一、拖拽部分,这部分你实现让scrollview跟着你的手移动
1、给scrollview添加onTouchListener或者自定义scrollview并重载其onTouchEvent方法。
2、根据move不停设置scrollview的坐标
你需要注意的是:event.getX()是你手指的坐标,而不是控件的坐标,很多人能够理解,但有的人写的时候会搞混。
你需要做的是:取得4个坐标——
(1)、你手指点下去的坐标,这个坐标在ACTION_DOWN中获得:primaryTouchCoord,这个坐标要一直保存,所以要在Touch事件外定义(类成员变量);
(2)、你手指当前的坐标curTouchCoord,在每次Touch事件触发的时候用event.getY()获得,即在switch外或者ACTION_MOVE中获得;
(3)、scrollview初始坐标primaryScrollViewCoord,这个坐标也在ACTION_DOWN中获得并且一直保存。
(4)、scrollview最终坐标curScrollViewCoord,在ACTION_UP中获得。
有了这四个坐标,就可以实现了。
在ACTION_MOVE中判断最大和最小Y坐标,比如
if(scrollview.getY<0){//让scrollview的坐标不超过你的最大和最小坐标
scrollview.setY(0);
}
if(scrollview.getY>(int)(mScreenHeight()*0.9)){
...
}
if(scrollview.getY()>0&&scrollview.getY<(int)(mScreenHeight()*0.9)+可以滑动条件),则执行scrollView.setY(primaryScrollViewCoord+(curTouchCoord-primaryTouchCoord));

上面完成后,scrollview就会跟着你的手指移动并且不会超过指定坐标

由于是scrollview,你不得不判断什么时候scrollview有效,否则在scrollview移动的时候,scrollview的内部也会移动。

上面的回答根据你实际情况修改。
二、动画部分,你的手离开屏幕后scrollview向上/下动画
在完成第一步后,你就已经完成了大半。
以下在ACTION_UP中完成
这时,在上面提到的primaryScrollViewCoord就会使用了,根据scrollview移动的距离判断是向上/下,然后使用animation(Set)完成接下来的动作。
你这里将使用Animation animation = new TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta);
注意4个坐标的意义,第一个为起始X坐标离当前坐标的距离,这里为0,第二个坐标为目的坐标到当前的距离,正负代表不同的方向;后面两个为Y坐标;
你这里要设置animation.setFillAfter(true),使UI保存在动画后;如果要保存到动画前,则使用setFillBefore(true);
animation.setDuration(int)设置动画事件
然后scrollview.startAnimation()开始动画
动画具体使用,网上可以找到,就不多说了。

需要注意的:
1、动画结束后一定要clear,可以给动画添加监听,在onAnimationEnd()里执行scrollview.clearAnimation(),如果可以的话,同时将scrollview设置成最大或最小坐标
2、不要使用touch坐标直接设置scrollview坐标,那样可能会导致移位。
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式