1.图片会跟随手指移动,只有是下滑时才会退出查看页面,其他情况会复位,直接当做ImageView使用即可,setViewCall方法是在下滑完成后要执行的操作,上,左,右,可自行扩展
2.onTouchEvent监听手指坐标,GestureDetector监听滑动的惯性,ViewHelper设置图片位移动画
publicclassFriendCircleViewextendsandroid.support.v7.widget.AppCompatImageViewimplementsGestureDetector.OnGestureListener{publicFriendCircleView(Contextcontext){super(context);initView(context,null,0);}publicFriendCircleView(Contextcontext,AttributeSetattrs){super(context,attrs);initView(context,attrs,0);}publicFriendCircleView(Contextcontext,AttributeSetattrs,intdefStyleAttr){super(context,attrs,defStyleAttr);initView(context,attrs,defStyleAttr);}//设置滑动完成后的回调方法publicvoidsetViewCall(FriendCircleViewCallviewCall){this.viewCallviewCall;}privatevoidinitView(Contextcontext,AttributeSetattrs,intdefStyleAttr){screenHeightScreenUtils.getScreenHeight(context);detectornewGestureDetector(context,this);}privateGestureDetectordetector;privateintscreenHeight;//设备屏幕高度privatefloatoldX,oldY;//手机放在屏幕的坐标privatefloatmovY;//移动中在屏幕上的坐标privatefloatalphaPercent1f;//背景颜色透明度privatebooleanisFinshfalse;//是否执行关闭页面的操作privateFriendCircleViewCallviewCallnull;@SuppressLint("ClickableViewAccessibility")@OverridepublicbooleanonTouchEvent(MotionEventevent){detector.onTouchEvent(event);switch(event.getAction()){caseMotionEvent.ACTION_DOWN:oldXevent.getRawX();oldYevent.getRawY();break;caseMotionEvent.ACTION_UP:caseMotionEvent.ACTION_CANCEL:if(isFinsh){isFinshfalse;if(viewCall!null){viewCall.viewDestry();}Log.e("ldd------","页面返回");}else{setupUping();Log.e("ldd------","手指抬起");}break;caseMotionEvent.ACTION_MOVE:isFinshfalse;floatmovXevent.getRawX()-oldX;movYevent.getRawY()-oldY;setupMoving(movX,movY);if(Math.abs(movX)Math.abs(movY)){if(movX0){Log.e("ldd------","左滑动");}else{Log.e("ldd------","右滑动");}}else{if(movY0){Log.e("ldd------","上滑动");}else{if(movY(screenHeight/6)){isFinshtrue;Log.e("ldd------","下滑动");}}}returnfalse;}returntrue;}privatevoidsetupUping(){animate().setDuration(200).scaleX(1).scaleY(1).translationX(0).translationY(0).setUpdateListener(newValueAnimator.AnimatorUpdateListener(){@OverridepublicvoidonAnimationUpdate(ValueAnimatoranimation){if(alphaPercentanimation.getAnimatedFraction()){((ViewGroup)getParent()).setBackgroundColor(convertPercentToBlackAlphaColor(animation.getAnimatedFraction()));}}}).start();}privatevoidsetupMoving(floatdeltaX,floatdeltaY){if(Math.abs(movY)(screenHeight/4)){floatscale1-Math.abs(movY)/screenHeight;alphaPercent1-Math.abs(deltaY)/(screenHeight/2);ViewHelper.setScaleX(this,scale);ViewHelper.setScaleY(this,scale);((ViewGroup)getParent()).setBackgroundColor(convertPercentToBlackAlphaColor(alphaPercent));}ViewHelper.setTranslationX(this,deltaX);ViewHelper.setTranslationY(this,deltaY);}//设置背景颜色透明度protectedintconvertPercentToBlackAlphaColor(floatpercent){percentMath.min(1,Math.max(0,percent));intintAlpha(int)(percent*255);StringstringAlphaInteger.toHexString(intAlpha).toLowerCase();Stringcolor"#"+(stringAlpha.length()2?"0":"")+stringAlpha+"000000";returnColor.parseColor(color);}@OverridepublicbooleanonDown(MotionEvente){returnfalse;}@OverridepublicvoidonShowPress(MotionEvente){}@OverridepublicbooleanonSingleTapUp(MotionEvente){isFinshtrue;returnfalse;}@OverridepublicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY){returnfalse;}@OverridepublicvoidonLongPress(MotionEvente){}@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){floatmovXe2.getRawX()-e1.getRawX();floatmovYe2.getRawY()-e1.getRawY();Log.e("ldd------2",movX+"---------"+movY);if(Math.abs(movX)Math.abs(movY)){if(movX0){Log.e("ldd------2","左滑动");}else{Log.e("ldd------2","右滑动");}}else{if(movY0){Log.e("ldd------2","上滑动");}else{isFinshtrue;Log.e("ldd------2","下滑动");}}returntrue;}publicinterfaceFriendCircleViewCall{voidviewDestry();}}
Android开发仿微信下拉关闭图片-如何关闭微信下拉功能-微信小程序动态
浏览量:3272
时间:
来源:ldd_QQ719919409
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










