윈도우에는 기본 프로그램으로 스크린 샷과 동영상을 녹화할 수 있는 캡처 프로그램이 들어있습니다.

원해는 Xbox 게임용으로 만들어져 있지만 일반 프로그램도 녹화가 가능합니다.

한가지 단점이 있는데 윈도우 전체 창을 녹화하지 않는다는 것입니다.

먼저 프로그램 기능을 활성화해야 가능한데 단축키로 [Window + G]를 클릭하면 나타나게 됩니다.

다른 방법으로는 시작 버튼에서 설정을 클릭합니다.

 

 

설정 팝업에서 [게임]을 찾아 클릭합니다.

 

 

Xbox Game Bar 팝업 창이 나오는데 여기서 []이 활성화 되어있으면 사용이 가능한 상태입니다.

 

일단 프로그램을 한번 실행해 봅니다.

단축키 [윈도우버튼 + G]를 클릭합니다.

 

 

상단에 보이는 것이 Xbox Game Bar이고 캡처 창이 사진 및 동영상을 녹화하는 버튼이 있는 창입니다.  오디오와 성능은 현재 시스템 정보들입니다.

 

 

원래 게임을 위해 만든 기능으로 로그인을 하게 되면 게임 상대방과 실시간으로 연결할 수 있습니다.  여기서는 게임을 하려는게 아니기 때문에 이 기능은 설명하지 않습니다.

캡처를 하기위한 아이콘이 있는 창이 있지만 아래와 같이 보이는 경우가 있습니다.

 

 

캡처 창의 동그란 녹화 버튼이 회색으로 비활성화 되어 있습니다.

처음에 지적했던 단점이 이것입니다.

윈도우 전체를 녹화하지 않기 때문에 녹화하려는 응용프로그램 창을 하나 선택하지 않고 윈도우전체가 선택되어 있는 상태인 경우 이렇게 비활성화 됩니다.

 

테스트를 위해 메모장을 하나 열어서 선택을 한 상태에서 다시 [윈도우버턴 + G]를 이용하여 캐처 팝업 창을 띄웁니다.

 

 

이번에는 녹화 버튼이 활성화되어 하얗게 선택이 가능한 상태가 되어있습니다.

 

 

원형의 녹화 버튼을 클릭하여 녹화가 시작되면 캡처 상태를 나타내는 창이 하나 더 나타나며 녹화 시간과 중지 버튼, 그리고 음성버튼이 있습니다.

 

메모장에 다음과 같이 글을 작성하며 녹화를 진행합니다.

 

 

필요한 만큼 녹화를 하고 파란색 원에 흰 네모 아이콘을 클릭해서 녹화를 마치면 이번에도 새로운 창이 나타납니다.

 

 

이상 없이 잘 녹화가 완료되었습니다.

 

 

[내 캡처 보기]를 클릭하면 녹화된 영상 목록을 볼 수 있습니다.

 

 

녹화된 파일은 [파일 위치 열기]를 선택하여 필요에 따라 사용하시면 됩니다.

이곳에서 미리보기를 하고 마음에 들지 않으면 바로 아래에 있는 삭제를 이용하고 제거하고 다시 녹화를 진행 합니다.

 

마이크로소프트에서 제공하는 단축키 목록이 있습니다.

 

 

Windows 10, Windows 11 모두 동일합니다.

 

- copy coding -

 

 

상태바를 삭제하는 기능은 SDK 버전에 따라 다른 코드를 사용해야 하기 때문에 소개하기가 매우 어렵습니다. 여기서는 코드를 소개하기 보다는 status bar를 삭제하는 종류를 소개하는데 중점을 두었습니다.

 

제가 테스트한 환경은 아래와 같습니다.

 

Android Studio version 4.2.1
 
compileSdkVersion 30

defaultConfig {
   
applicationId
"copycoding.tistory.statusbar"
   
minSdkVersion 19
   
targetSdkVersion 30
   
versionCode 1
   
versionName "1.0"

 

일단 textview를 하나 만들어서 실행을 해 봅니다.

 

<TextView
   
android:id="@+id/button"
   
android:layout_width="match_parent"
   
android:layout_height="321dp"
   
android:text="Hellow"
   
android:background="#CCCCCCCC"
   
android:textAlignment="center"
/>

 

 

1. Status bar 삭제

 

상태바의 영역을 완전히 삭제하는 방법 입니다.

 

1.1 xml 이용

상태바 영역을 xml을 이용하여 삭제하는 방법입니다.

 

<!-- Customize your theme here. -->
<item name="android:windowFullscreen">true</item>

 

상태바가 사라지고 Title bar 와 콘텐츠 영역이 위로 올라갑니다.

 

 

1.2 java 이용

 

이번에는 java 코드를 이용하여 상태바 영역을 삭제하는 코드 입니다.

 

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

 

또는 다음과 같은 방법을 이용할 수 있습니다.

 

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

 

 

2. Status bar 삭제/아이콘 유지

 

이번에는 상태바에 있는 아이콘들은 그대로 놓아두고 상태바 영역을 삭제하는 방법입니다.

 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.
FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

 

 

3. Status bar 사용

 

이번 예제는 상태바 영역을 삭제하지 않고 콘텐츠 영역을 확장하는 방법입니다.

표현이 정확하지 않겠지만 위에 있는 내용과 어떤 차이가 있는지 직접 보면 이해가 되실겁니다.

 

<item name="android:windowTranslucentStatus">true</item>

 

 

 

4. Source code 위치

 

xml : res > value > themes.xml
     파일에서 <!-- Customize your theme here. --> 
     이 코드 하단에 추가 합니다.

java : MainActivity.java > onCreate()
    파일에서 setContentView(R.layout.activity_main);
    이 코드 하단에 추가 합니다.

 

- copy coding -

 

 

테스트 환경

 

Android Studio version : 4.2.1

compileSdkVersion 30

defaultConfig {
   
applicationId
"copycoding.tistory.statusbar2"
   
minSdkVersion 16
   
targetSdkVersion 30
   
versionCode 1
   
versionName "1.0"

 

 

간단한 테스트용으로 앱을 만드는게 아니라면 title bar는 화면의 상당히 많은 부분을 차지하게 되어 화면 구성을 방해하게 됩니다.

Title bar를 숨기는 방법은 xmljava에서 간단하게 처리가 가능 합니다.

화면을 하나 생성을 하고 textview를 하나 추가해 줍니다.

 

<TextView
   
android:id="@+id/button"
   
android:layout_width="match_parent"
   
android:layout_height="321dp"
   
android:text="Hellow"
   
android:background="#CCCCCCCC"
/>

 

 

 

1. Java 코드로 삭제

 

java에서 삭제하기 위해 Acitvity.java를 열고 onCreate()에 코드를 추가 합니다.

여기서 추가하는 코드의 위치가 중요합니다. layout 이전에 추가를 합니다.

 

@Override
protected void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);

    requestWindowFeature(Window.
FEATURE_NO_TITLE);
   
getSupportActionBar().hide();

   
setContentView(R.layout.activity_main);

 

 

Title bar가 보이지 않게 되었습니다.

 

 

2. xml로 삭제

 

xml로 타이틀 바를 삭제 하려면 res > themes > themes.xml 파일을 오픈합니다.

아래와 같이 한줄을 추가해 줍니다.

 

<!-- Customize your theme here. -->
<item name="windowNoTitle">true</item>

 

이렇게 한줄만 추가해주면 타이틀 바가 삭제 됩니다.  결과는 동일하게 나옵니다.

 

 

 

3. 전체 코드

 

 

수정된 코드 소스만 올려 봅니다.

 

 

3.1 MainActivity.java

 

public class MainActivity extends AppCompatActivity {

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);

       
requestWindowFeature(Window.
FEATURE_NO_TITLE);
        getSupportActionBar().hide();
       
       
setContentView(R.layout.activity_main);
    }
}

 

 

3.2 themes.xml

 

<resources xmlns:tools="http://schemas.android.com/tools">
    
<!-- Base application theme. -->
   
<style name="Theme.Statusbar2" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
       
<!-- Primary brand color. -->
       
<item name="colorPrimary">@color/purple_500</item>
        <
item name="colorPrimaryVariant">@color/purple_700</item>
        <
item name="colorOnPrimary">@color/white</item>
       
<!-- Secondary brand color. -->
       
<item name="colorSecondary">@color/teal_200</item>
        <
item name="colorSecondaryVariant">@color/teal_700</item>
        <
item name="colorOnSecondary">@color/black</item>
       
<!-- Status bar color. -->
       
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>

       
<!-- Customize your theme here. -->
       
<item name="windowNoTitle">true</item>
    </
style>
</
resources>

 

- copy coding -


1

+ Recent posts