
https://github.com/hzw1199/FloatingView
来这儿吆喝一波 手指拖动的库已经很多了,但是这个库的亮点是支持系统、Activity 级、ViewGroup 级三种模式,满足各种需求

OverlaySystem 、 OverlayActivity 和 OverlayViewGroup 三种模式OverlaySystem模式下可在其他 APP 上显示,自动申请权限OverlayActivity模式下只在指定的 Activity 上显示OverlayViewGroup模式下只在指定的 ViewGroup 上显示在 project 的 build.gradle 中加入以下语句:
allprojects { repositories { ... maven { url "https://jitpack.io" } } } 在 module 的 build.gradle 中加入以下语句:
dependencies { compile 'com.github.hzw1199:FloatingView:1.0.0' } 创建配置并显示
OverlaySystem模式onCreate:
FloatingViewConfig cOnfig= new FloatingViewConfig.Builder() .setPaddingLeft(paddingLeft) .setPaddingTop(paddingTop) .setPaddingRight(paddingRight) .setPaddingBottom(paddingBottom) .setGravity(gravity) .build(); floatingView = new FloatingView(OverlaySystemActivity.this, R.layout.view_floating, config); floatingView.showOverlaySystem(); onDestroy:
if (floatingView != null) { floatingView.hide(); } OverlayActivity模式onAttachedToWindow:
FloatingViewConfig cOnfig= new FloatingViewConfig.Builder() .setPaddingLeft(paddingLeft) .setPaddingTop(paddingTop) .setPaddingRight(paddingRight) .setPaddingBottom(paddingBottom) .setGravity(gravity) .build(); floatingView = new FloatingView(OverlaySystemActivity.this, R.layout.view_floating, config); floatingView.showOverlayActivity(); onDetachedFromWindow:
if (floatingView != null) { floatingView.hide(); } OverlayViewGroup模式onCreate:
lyViewGroup.post(new Runnable() { @Override public void run() { FloatingViewConfig cOnfig= new FloatingViewConfig.Builder() .setPaddingLeft(paddingLeft) .setPaddingTop(paddingTop) .setPaddingRight(paddingRight) .setPaddingBottom(paddingBottom) .setGravity(gravity) .setDisplayWidth(lyViewGroup.getWidth()) .setDisplayHeight(lyViewGroup.getHeight()) .build(); floatingView = new FloatingView(OverlaySystemActivity.this, R.layout.view_floating, config); floatingView.showOverlayViewGroup(lyViewGroup); } }); onDestroy:
if (floatingView != null) { floatingView.hide(); } lyViewGroup是用来放置 FloatingView 的 ViewGroup
点击事件
floatingView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 无需配置混淆规则, consumerProguardFiles 已经配置过了
The MIT License (MIT) Copyright (c) 2017 AndroidGpsStatus Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1 hyyou2010 2019-07-17 00:22:25 +08:00 赞,先 star 支持一下 |
2 wulikanhuaz 2019-07-17 15:42:26 +08:00 大佬厉害呀 |
4 hzw1199 OP @wulikanhuaz 来个 star 吗(手动滑稽 |
5 wjh3936 2019-07-18 09:18:37 +08:00 骚年,看到我手中的 star 了吗(狗头 |