phonegap - заставка для Android-приложения


84

Может ли кто-нибудь посоветовать, как я могу добавить заставку в свое Android-приложение на основе HTML5 Phonegap. Я просто хочу, чтобы он отображался 5 секунд при загрузке. Также - кто-нибудь может посоветовать, каких размеров должна быть заставка.


2
Просто дружеский совет, ни при каких обстоятельствах не рекомендуется размещать заставку в мобильном приложении. Это разозлит ваших пользователей.
Куртис Нусбаум

37
Мне очень жаль, Куртис, я не уверен, что вы отстаиваете. Есть много очень популярных мобильных приложений, которые показывают заставку во время загрузки, не вызывая раздражения у пользователей. В iOS даже есть изображение, вызванное Default.png специально для этой цели.
Devgeeks

6
@Devgeeks Я согласен с Куртисом Нусбаумом в случае, когда вы показываете заставку, черт возьми. Если ваше приложение запускается долго, заставка с индикатором активности, вероятно, лучше, чем ничего, что может быть вероятной причиной популярных приложений, о которых вы говорите. В противном случае существует такое же (или даже большее) количество популярных мобильных приложений, которые не показывают заставку. По сути, доставляйте пользователя к приложению как можно быстрее. Пятисекундный экран-заставка каждый раз - плохая идея, поскольку в долгосрочной перспективе это разочарует пользователей.
Кинджал Диксит,

1
Пожалуйста ... не делай этого! Splashscreen - не лучшая идея :) Это правда, что он есть в некоторых популярных приложениях, но это не значит, что это хорошая идея;)
Štěpán Víteček

1
Я считаю, что заставки - это дело вкуса / дизайна. Конечно, большинство UX-людей посоветуют не использовать его, но я с ними не согласен; экран-заставка в 1 секунду не причинит никакого вреда, вместо этого он добавит «индивидуальности» и задаст «тему» ​​вашему приложению, выделив его среди тысяч «начальных» приложений. На моем устройстве более 70% ежедневно используемых приложений имеют заставки :)
numediaweb

Ответы:


176

Для того , чтобы иметь заставку в приложении PhoneGap Android вам нужно положить 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

Затем в вашем основном классе Java, который расширяет DroidGap, вам нужно будет добавить одну строку и изменить другую. Сначала добавьте:

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

эта строка должна появиться под, super.onCreateно раньше super.loadUrl. Затем вам нужно изменить метод loadUrl, чтобы он останавливался на 5 секунд перед загрузкой главной страницы. Это выглядело бы так:

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

Это должно сделать это за вас.

Недавно я сделал несколько обновлений о том, как SplashScreen работает на PhoneGap Android. Главное приложение теперь загружается, пока отображается экран-заставка. Это большое улучшение по сравнению с предыдущим вызовом блокировки экрана-заставки. Подробнее об изменениях в моем блоге .


1
Привет, Симон. Я просто получаю сообщение об ошибке: «Приложение неожиданно остановилось при реализации вышеуказанного?
Dancer

2
Кажется, есть проблема с использованием параметра тайм-аута в PhoneGap 1.2. См. Также stackoverflow.com/questions/8100219/…
Paul Beusterien

1
Если я удалю 5-секундный тайм-аут, приложение скомпилируется и ненадолго отобразится при загрузке - так что похоже, что комбинация вышеперечисленного с исправлением тайм-аута подействует ... Ура за вашу помощь
Dancer

6
Требовать от пользователя ожидания 5 секунд - ужасный совет.
Grahamparks

1
@BallisticPugh Вы хотите использовать изображение с 9 патчами, чтобы вы могли контролировать, что растягивается.
Саймон Макдональд,


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

Я также сталкивался с этой проблемой в телефонной связи 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.

Отредактируйте основной файл Java в папке src в каталоге проекта.

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 для получения дополнительной информации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.