FloatWindow 简单的悬浮窗

本文详细介绍了如何在Android中创建和适配一个简单的悬浮窗(FloatWindow),包括悬浮窗的滑动交互和双击放大的逻辑实现。
摘要由CSDN通过智能技术生成

悬浮窗 适配

完美的悬浮窗
支持滑动 双击放大逻辑

public class Test extends Activity {

    private static WindowManager mWindowManager;
    private WindowManager.LayoutParams wmParams;
    private int width, height;
    private FrameLayout mFloatLayout;

    private int screenWidth = ScreenUtils.getScreenWidth(this);
    private int screenHeight = ScreenUtils.getScreenHeight(this);
    private int localWidth = screenWidth / 4;
    private int localHeight = localWidth * 16 / 9;
    private boolean isBig = false;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initFloatWindow();
    }

    private void initFloatWindow() {

        wmParams = new WindowManager.LayoutParams();
        mWindowManager = (WindowManager) getApplication().getSystemService(getApplication().WINDOW_SERVICE);
        // 获取屏幕的高度
        DisplayMetrics dm = new DisplayMetrics();
        mWindowManager.getDefaultDisplay().getMetrics(dm);
        width = dm.widthPixels;
        height = dm.heightPixels;

        // 设置window type
        if (Build.VERSION.SDK_INT >= 26) {  //  8.0新特性
            wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
        } else {
            wmParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
        }


        // 设置图片格式,效果为背景透明
        wmParams.format = PixelFormat.RGBA_8888;
        // 设置浮动窗口不可聚焦(实现操作除浮动窗口外的其他可见窗口的操作)
        wmParams.flags = Win
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值