我将Activity
设置为全屏显示(没有ActionBar
或StatusBar
),如下所示:
在我的清单中
<activity
android:name=".SomeActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>
然后以我的风格:
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
这很好用。没有ActionBar
或StatusBar
。
问题出在这里。
在活动onCreate
中,我得到了屏幕的显示大小(getRealMetrics
),当我按下Button
时,我记录了值,如下所示:
Button button;
int mWidth = 0;
int mHeight = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_activity);
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
disp.getRealMetrics(displayMetrics);
mWidth = disp.getWidth();
mHeight = disp.getHeight();
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("Height = "+String.valueOf(mHeight)+" Width = "+String.valueOf(mWidth));
}
});
}
我正在测试的设备具有以下屏幕尺寸1920x1080
。当我按下Button
时,我会在日志中看到以下内容:
Height = 1857 Width = 1080
我检查了状态栏的高度,它的高度为63px。就是1920 - 63 = 1857
。换句话说,当我按下Button
时,状态栏仍会被考虑在内。
话虽如此,当状态栏隐藏时,有人可以告诉我吗?
答案 0 :(得分:0)
您可以在“ setContentView”之后尝试。
Display disp = getWindowManager().getDefaultDisplay();
mWidth = disp.getWidth();
mHeight = disp.getHeight();