한국어
Qt
 

이 글에서는 Qt로 작성된 안드로이드 응용프로그램에 Splash Screen을 추가하는 간단한 예를 설명한다.

 

Qt/QML에서 스플래시 화면을 작성하는 한 가지 옵션은 QML 또는 C++로 코드를 작성하는 것이다. 그러나 이 방법의 단점은 애플리케이션이 완전히 로드 될 때까지 검은색 화면을 보게된다.

 

스플래시 화면은 Android 에코 시스템을 사용하는 애플리케이션, 즉 매니페스트를 통해 애플리케이션에 추가된다. 따라서 매니페스트를 통해 Java를 사용하여 스플래시 화면을 보여줘야한다.

 

그럼 스플래시를 만들어 보자.

 

먼저 Projects > Build Settings 에서 Create Templates를 클릭한다.

templates.png

 

 

Finish를 클릭하여 프로젝트에 템플릿 추가를 완료한다.

template_wizard.png

 

추가된 AndroidManifest.xml 을 열고 다음과 같이 수정해야한다.

 

AndroidManifest.xml

애플리케이션 테마의 리소스 파일 (apptheme.xml)을 지정해야하는 매니페스트를 수정한다.

<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" 
          android:theme="@style/AppTheme" 
          android:name="org.qtproject.qt5.android.bindings.QtActivity" 
          android:label="-- %%INSERT_APP_NAME%% --" 
          android:screenOrientation="unspecified" 
          android:launchMode="singleTop">

 

다음으로 스플래시 화면 파일에 대한 정보를 추가한다.

<!-- Splash screen -->
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>
<!-- Splash screen -->

 

 

다음으로 스플래시 및 테마파일을 추가해준다. 이 파일들은 res/values ​​및 res/drawable 디렉토리에 추가되어야 한다.

 

splash.xml

new_splash.png

 

스플래시 화면에는 응용 프로그램 아이콘이 있으며 drawable 디렉토리에도 있어야한다.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#FFFFFFFF"/>
        </shape>
    </item>
    <item>
         <bitmap android:src="@drawable/icon"
        android:gravity="center" />
    </item>
</layer-list>

 

 

apptheme.xml

new_apptheme.png

 

여기서 제목 표시 줄을 비활성화하고 응용 프로그램 창의 배경을 설정한다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
    </style>
</resources>

 

프로젝트를 빌드하고 안드로이드 장치에 배포하면 스플래시 화면을 볼 수 있다.

android_splash.gif

 

다음 글을 참고: https://evileg.com/en/post/596/

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 87766
119 안드로이드 가상장치 사용 file makersweb 2019.01.13 1187
118 QMake 프로젝트를 CMake 프로젝트로 변환 with qmake2cmake makersweb 2022.09.17 1192
117 Qml에서 커튼효과 구현 예제 - Shader Effects file 운영자 2018.12.05 1213
116 QProcess 예제 (프로그램 재시작) file makersweb 2023.01.25 1241
115 Qt 6의 비동기 API makersweb 2020.10.19 1316
114 많은 리소스를 사용하는 Qt프로젝트에서 고려해봐야 할 qmake 옵션 makersweb 2019.10.11 1320
113 Qt 하이브리드 애플리케이션(Hybrid App) 개발 file makersweb 2023.02.08 1329
112 재진입(Reentrancy) 및 스레드 안전성(Thread-Safety) makersweb 2020.04.19 1358
111 Qt 스마트 포인터 (QSharedPointer, QScopedPointer, QPointer) makersweb 2022.08.18 1371
110 웹기반 Qt Design Viewer [2] file makersweb 2019.10.23 1399
109 tslib의 ts_calibrate를 응용해서 Qt로 터치보정기능 구현 file makersweb 2019.04.06 1466
108 qInstallMessageHandler를 이용한 디버그 메세지 출력 제어하기 makersweb 2019.02.25 1480
107 QThread 및 QMutex 예제 makersweb 2021.01.12 1484
106 Qbs에 대한 소개와 설치하는 방법 makersweb 2019.10.09 1489
105 싱글터치 스크린 및 임베디드 리눅스 기반에서 Qt 터치입력 makersweb 2018.12.24 1519
104 QML과 JavaScript 의 숫자 관련 내장된 함수 makersweb 2021.03.28 1564
103 Qt Quick 3D 소개 makersweb 2019.11.09 1589
102 QML에서 undefined를 확인하는 방법 makersweb 2017.11.29 1613
101 ApplicationWindow 와 메뉴바(MenuBar)구성 file makersweb 2020.01.04 1628
100 Widgets(C++) 기반의 기본 스타일을 Dark 테마 및 Material 디자인 스타일로 바꾸기 file makersweb 2023.01.28 1635