한국어
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 117122
120 Qbs에 대한 소개와 설치하는 방법 makersweb 2019.10.09 5259
119 웹기반 Qt Design Viewer [2] file makersweb 2019.10.23 5266
118 최초의 Qt 6.0 스냅샷 제공 (First Qt 6.0 Snapshot Available) j2doll 2020.06.21 5269
117 QRandomGenerator 클래스를 사용하여 난수(random values) 생성 makersweb 2020.10.17 5284
116 Q_D매크로와 d-pointer file makersweb 2019.05.07 5322
115 Base64로 인코딩된 파일을 복원 makersweb 2023.08.06 5322
114 Qt기반의 서버와 클라이언트간 SOAP(Simple Object Access Protocol) file makersweb 2020.05.11 5352
113 Qml에서 커튼효과 구현 예제 - Shader Effects file 운영자 2018.12.05 5427
112 clazy 로 13개의 시그널, 슬롯 오류 해결 makersweb 2022.08.23 5437
111 QThread 및 QMutex 예제 makersweb 2021.01.12 5487
110 QPA 플러그인과 HTML5 Backend file makersweb 2017.12.27 5500
109 Qt3D의 QML 타입으로 3D렌더링 file makersweb 2019.11.20 5603
108 VTK 를 사용해서 강력한 시각화(3D, Plotting, Chart)Qt 응용프로그램 개발하기 file makersweb 2022.10.16 5606
107 Loader를 사용하여 동적으로 QML 로드 makersweb 2021.01.19 5635
106 [Qt] Google Play의 향후 요구 사항을 준수하는 방법 [2] j2doll 2019.07.29 5697
105 앱을 종료할 때 QML 바인딩 오류를 피하는 방법 makersweb 2021.08.08 5733
104 Qt5기반 독립 프로세스(out-of-process)로 동작하는 가상키보드(virtual keyboard) file makersweb 2019.02.24 5802
103 QML의 사용자 정의 Image makersweb 2023.09.17 5815
102 안드로이드용 Qt 6.2 makersweb 2021.10.02 5841
101 Qt MQTT의 pus/sub 튜토리얼 file makersweb 2021.02.06 5866