Android 6.0之前 建立window方法如下:
Android 6.0之前 建立window方法如下:
@SuppressWarnings("rawtypes")
Class policyManagerClass = Class.forName("com.android.internal.policy.PolicyManager");
@SuppressWarnings("rawtypes")
Class[] parameterTypes = { Context.class };
Method method = policyManagerClass.getMethod("makeNewWindow", parameterTypes);
mWindow = (Window) method.invoke(null, mContext);
Android 6.0 以及後續版本,com.android.internal.policy.PolicyManager
已經被刪除,所以建立window方法如下:
方法一
Dialog dialog = new Dialog(mContext);
mWindow = dialog.getWindow();
方法二,此方法不適合非手機端
Class windowClass = Class.forName("com.android.internal.policy.PhoneWindow");
Constructor<?> localConstructor = windowClass.getConstructor(new Class[]{Context.class});
mWindow = (Window) localConstructor.newInstance(new Object[]{mContext});
完整程式碼為:
private void initWindow() {
try {
Dialog dialog = new Dialog(mContext);
mWindow = dialog.getWindow();
mWindow.setFormat(PixelFormat.TRANSLUCENT);
mWindow.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
mWindow.requestFeature(Window.FEATURE_NO_TITLE);
mWindow.setSoftInputMode(LayoutParams.SOFT_INPUT_ADJUST_RESIZE | LayoutParams.SOFT_INPUT_STATE_HIDDEN);
mWindow.setWindowManager(wm, null, null);
colorDrawable = new ColorDrawable();
colorDrawable.setAlpha(0);
mWindow.setBackgroundDrawable(colorDrawable);
mWindow.setCallback(this);
defindedView = new DefindedView(mContext);
defindedView.addView(mView);
mWindow.setContentView(defindedView.getView());
} catch (Exception e) {
e.printStackTrace();
}
}
參考
相關文章
- Android Starting Window(Preview Window)AndroidView
- Android-Window(一)——初識WindowAndroid
- Android 中的 WindowAndroid
- webpack 流程解析(1):建立compiler之前WebCompile
- window 建立py虛擬環境
- Android之Window與WindowManagerAndroid
- Android6.0~9.0適配Android
- Android6.0動態許可權最簡單的解決方法Android
- Android Window 9問9答Android
- Android 6.0、7.0、8.0、9.0適配Android
- Android 6.0 中新的新技術Android
- Activity啟動分析(二)--建立Window和ViewView
- Android 懸浮窗 System Alert WindowAndroid
- Android全面解析之Window機制Android
- android 建立多執行緒的幾種方法Android執行緒
- python內建方法之前六種Python
- 2.2 資料庫建立之前需考慮的事資料庫
- android 6.0三星5.1.1RootAndroid
- Android 6.0許可權管理筆記Android筆記
- window平臺下手動建立資料庫演示資料庫
- aix 6.0 載入磁帶的方法AI
- window10選單介面切換到window7的方法
- Android開發 - inflate方法與建立檢視解析Android
- Android之Window和彈窗問題Android
- Android解析WindowManager(二)Window的屬性Android
- Android知識進階樹——Window & ViewRootImplAndroidView
- window下 ionic框架 Android打包須知框架Android
- Android之window機制token驗證Android
- android UI結構 (1)Activity 與 WindowAndroidUI
- Android 之 Window、WindowManager 與視窗管理Android
- 在標準建立之前,軟體所存在的問題
- MySQL在建立索引之前一定要想到的事情MySql索引
- Android 6.0 中的新技術總結Android
- TempData["a"]多個Action方法之前共享資料
- win10怎麼建立賬戶 window10如何建立新賬戶Win10
- 內網滲透測試時,通常的策略和方法如下:內網
- 全面的Android檔案目錄解析和獲取方法(包含對6.0系統的說明)Android
- Android 6.0 執行時許可權詳解Android