Android의 전체 화면 활동?
활동을 전체 화면으로 만들려면 어떻게합니까? 알림 표시 줄이 없다는 뜻입니다. 어떤 아이디어?
프로그래밍 방식으로 수행 할 수 있습니다.
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
또는 AndroidManifest.xml
파일을 통해 수행 할 수 있습니다 .
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
편집하다:
AppCompatActivity를 사용하는 경우 새 테마를 추가해야합니다.
<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>
그리고 그것을 사용하십시오.
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.Fullscreen"/>
https://stackoverflow.com/a/25365193/1646479 덕분에
KitKat 에서 사용할 수있는 몰입 형 전체 화면 모드 라는 기술이 있습니다 .
@android:style/Theme.NoTitleBar.Fullscreen
이미 소유 한 테마를 사용하고 있기 때문에 테마를 사용하지 않으려면 android:windowFullscreen
.
AndroidManifest.xml에서 :
<activity
android:name=".ui.activity.MyActivity"
android:theme="@style/MyTheme">
</activity>
styles.xml에서 :
<style name="MyTheme" parent="your parent theme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
에서 의 AndroidManifest.xml 파일 :
<activity
android:name=".Launch"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > <!-- This line is important -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
또는 Java 코드에서 :
protected void onCreate(Bundle savedInstanceState){
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
AppCompat 및 ActionBarActivity를 사용하는 경우 다음을 사용하십시오.
getSupportActionBar().hide();
조심하세요
requestWindowFeature(Window.FEATURE_NO_TITLE);
다음과 같이 작업 표시 줄을 설정하는 방법을 사용하는 경우 :
getSupportActionBar().setHomeButtonEnabled(true);
널 포인터 예외가 발생합니다.
에서 appcompat을 사용해보십시오 style.xml
. 모든 플랫폼을 지원합니다.
<!-- Application theme. -->
<style name="AppTheme.FullScreen" parent="AppTheme">
<item name="android:windowFullscreen">true</item>
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" />
Android Studio (현재 버전은 2.2.2 임)를 사용하면 전체 화면 활동을 추가하기가 매우 쉽습니다.
단계를 참조하십시오.
- 자바 메인 패키지를 마우스 오른쪽 버튼으로 클릭> "새로 만들기"선택> "활동"선택> 그런 다음 "전체 화면 활동"을 클릭합니다.
- 활동 ( "활동 이름", "레이아웃 이름"등)을 사용자 정의하고 "마침"을 클릭합니다.
끝난!
이제 전체 화면 활동을 쉽게 만들 수 있습니다 (작동 방식을 알아 보려면 Java 클래스 및 활동 레이아웃을 참조하십시오)!
AppCompact를 사용하는 경우 ... style.xml
<style name="Xlogo" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
그런 다음 매니페스트에 이름을 입력하세요.
먼저 아래와 같이 "NoActionBar"로 앱 테마를 설정해야합니다.
<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" />
그런 다음 전체 화면 활동에 이러한 줄을 추가하십시오.
public class MainActiviy extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
전체 화면 활동에서 작업 표시 줄 / 도구 모음 및 상태 표시 줄을 숨 깁니다.
@Cristian에 대한 답변에 감사드립니다. 오류가 발생했습니다.
android.util.AndroidRuntimeException : 콘텐츠를 추가하기 전에 requestFeature ()를 호출해야합니다.
나는 이것을 사용하여 해결했다.
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_login);
-----
-----
}
AndroidManifest.xml
<activity ...
android:theme="@style/FullScreenTheme"
>
</activity>
I. 테마는 Theme.AppCompat.Light.DarkActionBar입니다.
ActionBar / StatusBar style.xml 숨기기
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
<style name="FullScreenTheme" parent="AppTheme">
<!--this property will help hide the ActionBar-->
<item name="windowNoTitle">true</item>
<!--currently, I don't know why we need this property since use windowNoTitle only already help hide actionbar. I use it because it is used inside Theme.AppCompat.Light.NoActionBar (you can check Theme.AppCompat.Light.NoActionBar code). I think there are some missing case that I don't know-->
<item name="windowActionBar">false</item>
<!--this property is used for hiding StatusBar-->
<item name="android:windowFullscreen">true</item>
</style>
시스템 탐색 모음을 숨기려면
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
setContentView(R.layout.activity_main)
...
}
}
II. 기본 앱 테마는 Theme.AppCompat.Light.NoActionBar입니다.
ActionBar / StatusBar style.xml 숨기기
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
</style>
<style name="FullScreenTheme" parent="AppTheme">
<!--don't need any config for hide ActionBar because our apptheme is NoActionBar-->
<!--this property is use for hide StatusBar-->
<item name="android:windowFullscreen">true</item> //
</style>
시스템 탐색 모음을 숨기려면
유사 처럼 Theme.AppCompat.Light.DarkActionBar
.
@android : style / Theme.NoTitleBar.Fullscreen을 사용하는 대신 내 테마를 사용하고 싶었습니다. 그러나 여기에 대한 일부 게시물이 언급했듯이 작동하지 않았으므로 그것을 파악하기 위해 약간의 조정을했습니다.
AndroidManifest.xml에서 :
<activity
android:name=".ui.activity.MyActivity"
android:theme="@style/MyTheme">
</activity>
styles.xml에서 :
<style name="MyTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
</style>
참고 : 제 경우에는 제대로 작동하기 전에 name="windowActionBar"
대신 사용해야 name="android:windowActionBar"
했습니다. 그래서 나중에 새 Android 버전으로 이식해야하는 경우를 대비하여 두 가지를 모두 사용했습니다.
다음은 예제 코드입니다. 특정 부분을 숨기거나 표시하기 위해 플래그를 켜거나 끌 수 있습니다.
public static void hideSystemUI(Activity activity) {
View decorView = activity.getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
//| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
//| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
그런 다음 기본 상태로 재설정합니다 .
public static void showSystemUI(Activity activity) {
View decorView = activity.getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
다음에서 위의 함수를 호출 할 수 있습니다 onCreate
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.course_activity);
UiUtils.hideSystemUI(this);
}
팁 : getWindow (). setLayout ()을 사용하면 전체 화면 디스플레이를 망칠 수 있습니다! 이 방법에 대한 문서는 다음과 같습니다.
창의 너비 및 높이 레이아웃 매개 변수를 설정합니다 ... 절대 값으로 변경하여 전체 화면이 아닌 창을 만들 수 있습니다.
http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29
내 목적을 위해 전체 화면 창 크기를 올바르게 조정하려면 절대 매개 변수와 함께 setLayout을 사용해야한다는 것을 알았습니다. 대부분의 경우 이것은 잘 작동했습니다. onConfigurationChanged () 이벤트에 의해 호출되었습니다. 그러나 딸꾹질이 있었다. 사용자가 앱을 종료하고 방향을 변경 한 다음 다시 입력하면 setLayout ()이 포함 된 내 코드가 실행됩니다. 이 재진입 시간 창에서 내 상태 표시 줄 (매니페스트에 의해 숨겨 짐)이 다시 나타나도록 만들었지 만 다른 시간에는 setLayout ()으로 인해이 문제가 발생하지 않습니다! 해결책은 다음과 같은 하드 값을 가진 호출 뒤에 추가 setLayout () 호출을 추가하는 것입니다.
public static void setSize( final int width, final int height ){
//DO SOME OTHER STUFF...
instance_.getWindow().setLayout( width, height );
// Prevent status bar re-appearance
Handler delay = new Handler();
delay.postDelayed( new Runnable(){ public void run() {
instance_.getWindow().setLayout(
WindowManager.LayoutParams.FILL_PARENT,
WindowManager.LayoutParams.FILL_PARENT );
}}, FILL_PARENT_ON_RESIZE_DELAY_MILLIS );
}
그러면 창 크기가 올바르게 조정되고이를 트리거 한 이벤트에 관계없이 상태 표시 줄이 다시 나타나지 않았습니다.
완전 몰입 형보기 :
private void askForFullScreen()
{
getActivity().getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
완전 몰입 형 모드에서 벗어나기 :
private void moveOutOfFullScreen() {
getActivity().getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
adjustFullScreen(newConfig);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
adjustFullScreen(getResources().getConfiguration());
}
}
private void adjustFullScreen(Configuration config) {
final View decorView = getWindow().getDecorView();
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
} else {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
}
styles.xml 내부 ...
<!-- No action bar -->
<style name="NoActonBar" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Theme customization. -->
<item name="colorPrimary">#000</item>
<item name="colorPrimaryDark">#444</item>
<item name="colorAccent">#999</item>
<item name="android:windowFullscreen">true</item>
</style>
이것은 나를 위해 일했습니다. 도움이되기를 바랍니다.
kotlin을 사용하면 이것이 내가 한 방식입니다.
class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
window.decorView.systemUiVisibility =
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_FULLSCREEN
}
}
몰입 형 모드
몰입 형 모드는 사용자가 화면과 많이 상호 작용하는 앱을위한 것입니다. 예를 들면 게임, 갤러리에서 이미지보기 또는 프레젠테이션의 책이나 슬라이드와 같이 페이지가 매겨진 콘텐츠 읽기가 있습니다. 이를 위해 다음 줄을 추가하십시오.
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
끈적한 몰입감
일반 몰입 형 모드에서는 사용자가 가장자리에서 스 와이프 할 때마다 시스템이 시스템 표시 줄을 표시합니다. 앱은 제스처가 발생했다는 사실조차 인식하지 못합니다. 따라서 사용자가 기본 앱 경험의 일부로 실제로 화면 가장자리에서 스 와이프해야하는 경우 (예 : 많은 스 와이프가 필요한 게임을하거나 그리기 앱을 사용하는 경우) 대신 "고정"몰입 형 모드를 활성화해야합니다. .
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
자세한 정보 : 전체 화면 모드 활성화
키보드를 사용하는 경우 키보드가 나타날 때 StatusBar가 표시되는 경우가 있습니다. 이 경우 일반적으로 이것을 내 스타일 xml에 추가합니다.
styles.xml
<style name="FullScreen" parent="AppTheme">
<item name="android:windowFullscreen">true</item>
</style>
그리고이 줄은 내 매니페스트에
<activity
android:name=".ui.login.LoginActivity"
android:label="@string/title_activity_login"
android:theme="@style/FullScreen">
이 코드를 onCreate()
메서드에 붙여 넣기 만하면됩니다.
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
코 틀린
Google 문서에 따라 쉬운 방법이 있습니다.
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) hideSystemUI() }
private fun hideSystemUI() {
// Enables regular immersive mode.
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN) }
// Shows the system bars by removing all the flags
// except for the ones that make the content appear under the system bars.
private fun showSystemUI() {
window.decorView.systemUiVisibility =
(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) }
그것은 나를 위해 일했습니다.
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash_screen);
getSupportActionBar().hide();
}
성공하지 못한 채 많은 시간을 보낸 후 다른 개발자와 유사한 내 솔루션을 사용했습니다. 그래서 누군가 그녀를 필요로한다면 전화를 걸어도 시스템 내비게이션 바가 숨겨지지 않는 것이 문제였습니다. 또한 제 경우에는 풍경이 필요했기 때문에 그 줄과 그 모든 것을 주석으로 처리하십시오. 우선 스타일 만들기
<style name="FullscreenTheme" parent="AppTheme">
<item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowBackground">@null</item>
<item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
<item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>
이것은 내 매니페스트 파일입니다.
<activity
android:name=".Splash"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize"
android:label="@string/app_name"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize"
android:screenOrientation="landscape"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme">
</activity>
이것은 내 spalsh 활동입니다.
public class Splash extends Activity {
/** Duration of wait **/
private final int SPLASH_DISPLAY_LENGTH = 2000;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.splash_creen);
/* New Handler to start the Menu-Activity
* and close this Splash-Screen after some seconds.*/
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
Intent mainIntent = new Intent(Splash.this,MainActivity.class);
Splash.this.startActivity(mainIntent);
Splash.this.finish();
}
}, SPLASH_DISPLAY_LENGTH);
}
}
이것이 나의 주요 전체 화면 활동입니다. onSystemUiVisibilityChange thi 메서드는 중요하지 않습니다. 그렇지 않으면 호출 후 Android 기본 탐색 모음이 유지되고 더 이상 사라지지 않습니다. 정말 짜증나는 문제지만이 기능은 그 문제를 해결합니다.
공용 클래스 MainActivity extends AppCompatActivity {
private View mContentView;
@Override
public void onResume(){
super.onResume();
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fullscreen2);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null)
{
actionBar.hide();
}
mContentView = findViewById(R.id.fullscreen_content_text);
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
(new View.OnSystemUiVisibilityChangeListener()
{
@Override
public void onSystemUiVisibilityChange(int visibility)
{
System.out.println("print");
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)
{
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
else
{
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
});
}
}
이것은 내 스플래시 화면 레이아웃입니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/splashscreen" android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:src="@drawable/splash"
android:layout_gravity="center"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, splash"/>
</LinearLayout>
This is my fullscreen layout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0099cc"
>
<TextView
android:id="@+id/fullscreen_content_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:keepScreenOn="true"
android:text="@string/dummy_content2"
android:textColor="#33b5e5"
android:textSize="50sp"
android:textStyle="bold" />
</FrameLayout>
도움이 되길 바랍니다
https://developer.android.com/training/system-ui/immersive.html
활동 :
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
AndroidManifests :
<activity android:name=".LoginActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_login"
android:theme="@style/FullscreenTheme"
></activity>
빈 활동을 만들고 onCreate
.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// full screen activity
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
}
...
}
onCreate ()에서 setContentView 다음에이 메서드를 사용 하고 getWindow ()에 의해 Window 객체를 전달합니다 .
public void makeActivityFullScreen(Window window){
View decorView = window.getDecorView();
// int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
}
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
);
}
이 코드는 노치 화면에서도 작동합니다. 노치 전체 화면을 확인하려면 안드로이드 P가 필요하지만 노치 디스플레이 전화가 있으면 설정-> 디스플레이 설정-> 앱 디스플레이 비율-> 앱 선택 -> 두 가지 옵션이 있습니다. 디스플레이 및 전체 화면, 전체 화면을 선택하고 앱을 실행하십시오 .Android Pie 없이도 전체 화면을 노치로 볼 수 있습니다.
getWindow().addFlags(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
참고 URL : https://stackoverflow.com/questions/2868047/fullscreen-activity-in-android
'Nice programing' 카테고리의 다른 글
`require ':로드 할 파일 없음 — mkmf (LoadError) (0) | 2020.10.03 |
---|---|
Git을 사용할 때 Permission denied (publickey) 오류를 해결하는 방법은 무엇입니까? (0) | 2020.10.03 |
1980 년 이래 컴퓨팅 분야의 중요한 새로운 발명 (0) | 2020.10.03 |
파이썬에서 한 문자열을 다른 문자열에 어떻게 추가합니까? (0) | 2020.10.03 |
JavaScript의 "새"키워드가 유해한 것으로 간주됩니까? (0) | 2020.10.03 |