phonegap-Android 앱용 스플래시 화면


84

누구든지 내 HTML5 Phonegap 기반 Android 앱에 스플래시 화면을 추가하는 방법을 조언 해 주시겠습니까? 로드시 5 초 동안 표시하고 싶습니다. 또한-누구나 스플래시 화면의 크기를 알려줄 수 있습니다.


2
어떤 상황에서도 모바일 앱에 스플래시 화면을 배치하는 것은 좋은 생각입니다. 그것은 당신의 사용자를 매우 화나게 할 것입니다.
Kurtis Nusbaum

37
미안합니다 커티스, 당신이 옹호하는 것이 무엇인지 잘 모르겠습니다. 사용자에게 불편을주지 않고로드하는 동안 스플래시 화면을 표시하는 매우 인기있는 모바일 앱이 많이 있습니다. iOS에는 특히 이러한 목적으로 Default.png를 발생시키는 이미지가 있습니다.
Devgeeks 2011

6
@Devgeeks 나는 당신이 그것을 위해 스플래시 화면을 보여주는 경우에 대해 Kurtis Nusbaum과 동의합니다. 응용 프로그램을 시작하는 데 시간이 오래 걸리는 경우 활동 표시기가 있는 스플래시 화면 이없는 것보다 낫습니다. 이것이 여러분이 말하는 인기있는 응용 프로그램의 원인 일 수 있습니다. 그렇지 않으면 스플래시 화면을 표시하지 않는 인기있는 모바일 앱의 수가 같거나 더 많습니다. 기본적으로 가능한 한 빨리 사용자를 응용 프로그램에 연결합니다. 매번 5 초의 스플래시 화면은 장기적으로 사용자를 실망시킬 수 있으므로 나쁜 생각입니다.
Kinjal Dixit 2012

1
제발 ... 하지마! 스플래시 스크린 그것은 일부 인기있는 애플 리케이션을 가지고, 맞아 : 좋은 생각은 아니지만 좋은 아이디어입니다, 의미하지 않는다)
스테판 Víteček

1
스플래시 화면은 취향 / 디자인의 문제라고 생각합니다. 물론 대부분의 UX 사람들은 그것을 사용하지 말라고 조언하지만 나는 그들에 동의하지 않습니다. 1 초 스플래시 화면은 아무런 해를 끼치 지 않습니다. 대신에 "개성"을 추가하고 수천 개의 "부트 스트랩"앱 중에서 눈에 띄는 "테마"를 앱에 설정합니다. 내 장치에서 매일 사용하는 앱의 70 % 이상이 스플래시 화면을 가지고 있습니다. :)
numediaweb

답변:


176

당신이 당신의 넣을 필요가 폰갭 안드로이드 응용 프로그램의 시작 화면이하기 위해서 splash.png로 파일을 res/drawable-ldpi, res/drawable-mdpi, res/drawable-hdpi, res/drawable-xhdpi. 이러한 디렉토리는 인치당 낮은, 중간, 높은 및 초대형 도트를 나타냅니다. 각 디렉토리에 대해 splash.png (여기에서 파일 이름이 중요 함) 크기를 조정해야합니다. 그렇지 않으면 Android에서 자동으로 확장됩니다.

각 이미지의 크기는 다음과 같아야합니다.

  • xlarge (xhdpi) : 최소 960 x 720
  • 대형 (hdpi) : 최소 640 x 480
  • 중간 (mdpi) : 최소 470 x 320
  • 소형 (ldpi) : 최소 426 x 320

그런 다음 DroidGap을 확장하는 기본 Java 클래스에서 한 줄을 추가하고 다른 줄을 수정해야합니다. 먼저 추가 :

super.setIntegerProperty("splashscreen", R.drawable.splash);

이 줄은 아래에 super.onCreate있지만 앞에 표시되어야합니다 super.loadUrl. 그런 다음 기본 페이지를로드하기 전에 5 초 동안 일시 중지하도록 loadUrl 메서드를 수정해야합니다. 다음과 같이 표시됩니다.

super.loadUrl("file:///android_asset/www/index.html", 5000);

그것은 당신을 위해 그것을 할 것입니다.

최근에 PhoneGap Android에서 SplashScreen이 작동하는 방식을 업데이트했습니다. 이제 시작 화면이 표시되는 동안 기본 앱이로드됩니다. 이것은 이전 차단 스플래시 화면 호출에 비해 크게 개선되었습니다. 내 블로그에서 변경 사항에 대해 자세히 알아보십시오 .


1
안녕하세요 SImon i 위를 구현할 때 응용 프로그램이 예기치 않게 중지되었다는 오류 메시지가 표시됩니다.
Dancer

2
PhoneGap 1.2에서 timeout 매개 변수를 사용하는 데 문제가있는 것 같습니다. 참조 stackoverflow.com/questions/8100219/…
Paul Beusterien 2011

1
5 초 타임 아웃을 제거하면 앱이 컴파일되고로드시 잠시 표시됩니다. 따라서 위와 타임 아웃 수정을 조합하면 효과가있는 것 같습니다. 도움을 요청합니다.
Dancer

6
사용자에게 5 초 동안 기다리도록 요구하는 것은 끔찍한 조언입니다.
grahamparks

1
@BallisticPugh 9 패치 이미지를 사용하여 늘어나는 것을 제어 할 수 있습니다.
Simon MacDonald


3

내 Phonegap 앱, Android 버전에서 Eclipse 디버거는 loadUrl을 호출하기 전에 스플래시 화면 또는 '로드 중'대화 상자를 설정하면 짜증을냅니다.

둘 다 기기에 설치된 실제 앱에서 작동하지만 디버깅이 중단됩니다. 그래서 저는 그것들을 loadUrl 뒤에 두었습니다. 그것들은 해를 끼치 지 않고 여전히 앱 자체보다 잘 보여줍니다.

public class App extends DroidGap {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html",5000);
    super.setStringProperty("loadingDialog", "Starting your app...");
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    ...
}...

3

나는 또한 phonegap android .. 에서이 문제에 직면했지만 이제 해결책을 얻었습니다.

super.setIntegerProperty("splashscreen", R.drawable.splash);(find image under drawable folder named splash,so put splash.png under drawable folder)
super.loadUrl("file:///android_asset/www/index.html",15000);(splash screen will show 15 sec.

프로젝트 디렉토리의 src 폴더에서 기본 Java 파일을 편집하십시오.

public class radiobiafra extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);

         super.setIntegerProperty("splashscreen", R.drawable.splash);
         super.loadUrl("file:///android_asset/www/index.html",15000);
     }
}

1
이것은 일반적으로 찾을 수 있습니다 :platforms/android/src/com/[your app name]/[Your App Name.java
이안 제이미 슨을

앞서 언급 한 경로에서 .java 파일을 찾지 못했습니다
Prak

0

이것은 아마도 귀하의 요구를 충족시킬 것입니다. 직관적 인 인터페이스에서 모든 관련 config.xml 설정, 이미지 및 스플래시 화면을 사용자 정의하고 추가 할 수 있습니다.

파일을 다운로드하고 수동으로 설치하는 것이 좋습니다. 웹 기반 에어 설치 프로그램이 작동하지 않는 것 같습니다.

http://aj-software.com/configap/index.html


0

Cordova> = 3.6을 사용하고 Cordova 명령 줄 인터페이스로 앱을 빌드하면 config.xml파일 에서 스플래시 화면을 구성 할 수 있습니다 . 다음은 Android의 예입니다.

<platform name="android">
    <!-- you can use any density that exists in the Android project -->
    <splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
    <splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
    <splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
    <splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>

    <splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
    <splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
    <splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
    <splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
<preference name="SplashScreenDelay" value="10000" />

프로그래밍 방식으로 시작 화면을 표시 / 숨기기 위한 전용 플러그인 도 있습니다 .

자세한 정보는 Cordova 문서 를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.