應項目需求要實現一個無界面的Activity
各種網址試了一遍界面是沒了盛险,但是無法點擊桌面上的圖標唠帝,各種屬性就只是透明而已!
要求:不僅僅透明实愚、還要能點擊下面的圖標、不需要setContentView(R.layout.activity_main) 兔辅!
其實很簡單上代碼了腊敲,下面是我Activity的主題style,主要是設置為透明
<style name="AppThemeTranslucent" parent="AppTheme.NoBar">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
看一下我Activity的代碼维苔,并沒有寫入布局碰辅,還有去除標題欄的代碼
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags( WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
}
此時運行起來確實沒有界面了,但只是透明的雖然沒有設置布局但還是不能點擊到桌面上的圖標介时,于是...
Window window = this.getWindow();
WindowManager m = window.getWindowManager();
Display d = m.getDefaultDisplay(); // 獲取屏幕寬没宾、高用
WindowManager.LayoutParams p = window.getAttributes(); // 獲取對話框當前的參數值
p.height = 0; // 高度設置為0
p.width = 0;//寬0
p.gravity = Gravity.CENTER;
window.setAttributes(p);
下面是全部代碼,哈哈沸柔,我把布局大小設置為0了循衰,這樣就可以了,實現了真正的無界面褐澎!
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags( WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
/*
* 將對話框的大小按屏幕大小的百分比設置
*/
Window window = this.getWindow();
WindowManager m = window.getWindowManager();
Display d = m.getDefaultDisplay(); // 獲取屏幕寬会钝、高用
WindowManager.LayoutParams p = window.getAttributes(); // 獲取對話框當前的參數值
p.height = 0; // 高度設置為0
p.width = 0;//寬0
p.gravity = Gravity.CENTER;
window.setAttributes(p);