これは私のコードです:
_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);
_
そして私のマニフェストはフルスクリーンを特徴とするスタイルを定義します。
スクリーンショット
これが現在の状態です。オーバーレイをステータスバーにも拡張します。
私がしなければならなかったすべてはこれでした
params.flags=WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| and the rest
これにより、ステータスバーのオーバーレイビューが拡張されます。
「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();
}
ステータスバーを非表示にするには、次の2つの方法があります。
1)アクティビティonCreate()
メソッドで以下の行を定義します。
requestWindowFeature(Window.FEATURE_NO_TITLE);
2)以下のように、アプリケーション全体でステータスバーを表示しないように、アプリケーションレベルでテーマを定義します。
<application Android:label="@string/app_name" Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen">
以下を使用して、タイトルバーを非表示にできます。
パブリッククラス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"を使用することもできます
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>
これを試して..
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);