直播app開發,推出語音聊天室時保持懸浮窗存在狀態

zhibo系統開發 發表於 2022-01-13

直播app開發,推出語音聊天室時保持懸浮窗存在狀態實現的相關程式碼

    private WindowManager mWindowManager;
    private WindowManager.LayoutParams wmParams;
    private LinearLayout mFloatInfoView;//懸浮窗佈局檔案
    private TextView mTvInfoMessage;
MainActivity()
{
if(windowOn == true)
{
showTheWindows();
}else
{
if (mWindowManager != null &&mFloatInfoView != null ) {
                mWindowManager.removeViewImmediate(mFloatInfoView);
                    }
}
}
public void showTheWindows()
    {
 
        Context appContext = context.getApplicationContext();
        // 獲取WindowManager
        mWindowManager = (WindowManager) appContext.getSystemService(Context.WINDOW_SERVICE);
        mFloatInfoView = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.float_test_info_view, null);
        initMoveableParams();
        initInfoWindow();
    }
public void initMoveableParams() {
        wmParams = new WindowManager.LayoutParams();
        wmParams.type = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ?
                WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY :
                WindowManager.LayoutParams.TYPE_PHONE;
        wmParams.format = PixelFormat.RGBA_8888;
        wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
        wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
        wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
        wmParams.gravity = Gravity.RIGHT | Gravity.BOTTOM;
    }
   public boolean initInfoWindow() {
    boolean b = false;
        //get layout
        LayoutInflater inflater = LayoutInflater.from(context);
        if (inflater == null) {
        log("[initInfoWindow] inflater = null");
            return b;
        }
        mFloatInfoView = (LinearLayout) LayoutInflater.from(context).inflate(com.mediatek.internal.R.layout.float_test_info_view, null);
        if (mFloatInfoView == null) {
        log("[initInfoWindow] mFloatInfoView = null");
            return b;
        }
        mWindowManager.addView(mFloatInfoView, wmParams);
        return true;
    }


以上就是 直播app開發,推出語音聊天室時保持懸浮窗存在狀態實現的相關程式碼,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2852080/,如需轉載,請註明出處,否則將追究法律責任。