EasyFloat 是一個 Android 懸浮窗框架,可以輕松實現(xiàn)懸浮窗功能
在項目的 build.gradle 文件中添加 EasyFloat 的依賴項:
dependencies {
implementation 'com.github.princekin-f:EasyFloat:1.3.4'
}
在 AndroidManifest.xml 文件中添加以下權限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
在需要使用懸浮窗功能的 Activity 中,請求懸浮窗權限??梢允褂?EasyFloat 提供的 PermissionUtils 類進行權限請求:
import com.lzf.easyfloat.permission.PermissionUtils;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 請求懸浮窗權限
PermissionUtils.requestPermission(this, REQUEST_CODE);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE) {
if (PermissionUtils.checkPermission(this)) {
// 權限已獲取,可以顯示懸浮窗
} else {
// 權限未獲取,提示用戶需要懸浮窗權限
Toast.makeText(this, "需要懸浮窗權限", Toast.LENGTH_SHORT).show();
}
}
}
}
使用 EasyFloat 提供的 FloatWindow 類創(chuàng)建并顯示懸浮窗:
import com.lzf.easyfloat.EasyFloat;
import com.lzf.easyfloat.enums.ShowPattern;
import com.lzf.easyfloat.enums.SidePattern;
public class MainActivity extends AppCompatActivity {
// ...
private void showFloatWindow() {
EasyFloat.with(this)
.setLayout(R.layout.float_window_layout) // 設置懸浮窗布局
.setShowPattern(ShowPattern.ALL_TIME) // 設置懸浮窗顯示模式
.setSidePattern(SidePattern.DEFAULT) // 設置懸浮窗貼邊模式
.setDragEnable(true) // 設置懸浮窗是否可拖動
.show(); // 顯示懸浮窗
}
}
// 隱藏懸浮窗
EasyFloat.hide(this);
// 關閉懸浮窗
EasyFloat.dismiss(this);
現(xiàn)在你已經(jīng)成功地在 Android 項目中集成了 EasyFloat 懸浮窗框架。你可以根據(jù)需要自定義懸浮窗的樣式和行為。更多關于 EasyFloat 的信息和用法,請參考官方文檔:https://github.com/princekin-f/EasyFloat