web-dev-qa-db-ja.com

WindowManagerの全画面

これは私のコードです:

_params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
    PixelFormat.TRANSLUCENT);

wm = (WindowManager) getApplicationContext()
    .getSystemService(Context.WINDOW_SERVICE);

inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mTopView = (ViewGroup) inflater.inflate(R.layout.activity_invisible, null);

params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
    | WindowManager.LayoutParams.FLAG_DIM_BEHIND
    | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
    | WindowManager.LayoutParams.FLAG_FULLSCREEN;

if (keep==true) {
    int value = brightnessIntent.getExtras().getInt("value");
    float v=value/255.0f;
    params.dimAmount=0;
    params.alpha=v;
    rl = (RelativeLayout) mTopView.findViewById(R.id.window);

    getWindow().setAttributes(params);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    wm.addView(mTopView, params);
}
_

ビューには引き続きステータスバーが表示されます。mTopViewはオーバーレイウィンドウです。オーバーレイウィンドウを画面全体に表示するにはどうすればよいですか?ステータスバーを「非表示」にしたくないので、アクティビティをオーバーレイします。

[編集]強調されたテキスト私はすでにこれをonCreate()メソッドに持っています:

_requestWindowFeature(Window.FEATURE_NO_TITLE); 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
_

そして私のマニフェストはフルスクリーンを特徴とするスタイルを定義します。

スクリーンショット

enter image description here

これが現在の状態です。オーバーレイをステータスバーにも拡張します。

16

私がしなければならなかったすべてはこれでした

params.flags=WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| and the rest

これにより、ステータスバーのオーバーレイビューが拡張されます。

19

「Android Application 4 Development」からのこのコード。異なるAndroidバージョンを処理する必要があります

 // Hiding the Action Bar for different Android versions 
    if (Build.VERSION.SDK_INT < 16) {
        // Hide the Action Bar on Android 4.0 and Lower
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
     }else {
        // Hide the Action Bar on Android 4.1 and Higher
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
        Android.app.ActionBar actionBar = getActionBar();
        actionBar.hide();
     }
6
Bahi Hussein

ステータスバーを非表示にするには、次の2つの方法があります。

1)アクティビティonCreate()メソッドで以下の行を定義します。

  requestWindowFeature(Window.FEATURE_NO_TITLE);

2)以下のように、アプリケーション全体でステータスバーを表示しないように、アプリケーションレベルでテーマを定義します。

<application Android:label="@string/app_name"
  Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen">
3
GrIsHu

以下を使用して、タイトルバーを非表示にできます。

パブリッククラスMainActivityはAppCompatActivity {

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    requestWindowFeature(Window.FEATURE_NO_TITLE);  
    getSupportActionBar().hide(); 
    setContentView(R.layout.activity_main);  


}  

}

次を使用して全画面表示を取得します。

パブリッククラスMainActivityはAppCompatActivity {

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main);  


}  

}
また、styles.xmlでparent = "Theme.AppCompat.NoActionBar"を使用することもできます

0
venu

Androidで常にトップのフルスクリーンオーバーレイアクティビティを作成するには:

public void onCreate(Bundle savedInstanceState) {       
 super.onCreate(savedInstanceState);        

 requestWindowFeature(Window.FEATURE_NO_TITLE);
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
 getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);             
 getWindow().setBackgroundDrawableResource(Android.R.color.transparent);
 getWindow().setFormat(PixelFormat.TRANSLUCENT);
 setContentView(R.layout.main);
 }

半透明設定は、XMLマニフェストで外部で有効にする必要があります。そうしないと、機能しませんでした。

 <item name="Android:windowIsTranslucent">true</item>
0
Iman Marashi

これを試して..

   requestWindowFeature(Window.FEATURE_NO_TITLE);

それはあなたのステータスバーを隠しません、あなたのアプリケーションは全画面をカバーしますステータスバーだけが見えます

           public class example extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);


    setContentView(R.layout.example);
}

}

ステータスバーを非表示にする

あなたは使うことができます

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

この方法を試してください

final WindowManager.LayoutParams params = new WindowManager.LayoutParams( 
WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN,                 
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,               
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
            PixelFormat.TRANSLUCENT);   

    WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);    

    ViewGroup mTopView = (ViewGroup) App.inflater.inflate(R.layout.main, null);
    getWindow().setAttributes(params);
    wm.addView(mTopView, params);
0
Janmejoy