QSP под Android
Взялся недавно за портирование QSP на андроид.
Учитывая, что под андроид нельзя “напрямую” портировать написанный с использованием wxWidgets плеер, задача оказалась довольно сложной.
Разобравшись с доступными средствами, определился, как именно сделать порт, а именно:
- Библиотека QSP собирается в NDK.
- Для библиотеки делается “биндинг под ANDROID”.
- Для доступа к интерфейсу библиотеки через jni пишется специальный класс-прослойка.
- GUI пишется на Java.
Страница на Маркете: Quest Player
Плеер научился показывать картинки в тексте и в отдельном окне.
Если действие длиннее двух строк его приходится скроллировать. Не очень удобно, а когда еще куча места на экране и непонятно зачем.
Три дороги: при попытке открытия вылетает
11-24 23:20:02.682: ERROR/AndroidRuntime(711): FATAL EXCEPTION: main
11-24 23:20:02.682: ERROR/AndroidRuntime(711): java.lang.NullPointerException
11-24 23:20:02.682: ERROR/AndroidRuntime(711): at com.qsp.player.QspImageGetter.getDrawable(QspImageGetter.java:28)
11-24 23:20:02.682: ERROR/AndroidRuntime(711): at android.text.HtmlToSpannedConverter.startImg(Html.java:605)
Пиратская одиссея: не смог запустить со звуком. Вешает телефон полностью. Без звуковых файлов - все ок.
Piligrim:
Если действие длиннее двух строк его приходится скроллировать. Не очень удобно, а когда еще куча места на экране и непонятно зачем.
У меня “раскладка” (layout) такая:
<ScrollView>
<TextView основное описание>
<ListView действия>
</ScrollView>
Есть проблема с использованием ListView в ScrollView. В Андроиде вообще “нельзя” использовать ListView внутри ScrollView, т.к. ListView сам по себе должен содержать скроллер. Как следствие, при вставке его в ScrollView он “сворачивается”. Чтобы его развернуть, используется хак, который не всегда правильно выставляет размер, иногда получается “короче” примерно на полстроки, стремно, но терпимо.
Как и очень многое в этом плеере, хак этот временный :)
По-хорошему переделать нужно будет “под винду”, с перетаскиваемым разделителем между областью описания и областью действий, и чтобы описание и действия скроллились независимо друг от друга.
Но это, увы, позже. Сейчас есть более приоритетные задачи.
Поднял репозиторий - http://code.google.com/p/qsp-android-player/
Починил баги, которые мешали играть в “Три дороги” и “Пиратскую одиссею”.
Исправил баг, из-за которого плеер вылетал при каждом четном перезапуске.
Новая версия не устанавливается.
UPD: Собранная из исходников устанавливается и нормально работает. Из шапки - ругается на сертификат одного из файлов папки res.
Обновил файл. Продолжает ругаться?
Не устанавливается. Когда буду дома посмотрю причину.
Чем могу помочь в части программирования? Какую часть лучше смотреть?
Я могу задания дать, на выбор (можешь и все по очереди выполнять, если у тебя время есть)
1. сделать иконки(исходники лого то ли векторного, то ли просто в большом разрешении вроде я Байту передавал, если у него нет, у себя пошукаю)
2. сделать переключение вкладок жестами
3. сделать уведомления об изменениях в доп. описании и инвентаре - пожалуй, лучше всего подойдет если будут соотв. анимироваться или меняться цвет(или иконка) заголовка вкладки.
4. собственно разобраться, почему не устанавливается прикрепленное в шапке приложение(создаю через меню Android tools/Export Unsigned Package)
сам я займусь пролистыванием папок(чтобы не только из корня можно было игры выбирать), и на выходных попытаюсь вынести либу в отдельный поток, для обработки всплывающего меню и окошка с вводом текста.
По пункту 4:
DDMS ругается на
12-03 12:55:58.862: ERROR/PackageParser(125): Package com.qsp.player has no certificates at entry res/layout/act_item.xml; ignoring!
а Подписывание приложений предполагает, что все приложения должны быть подписаны. Нужно использовать “Export signed application”
Nex:
для обработки всплывающего меню и окошка с вводом текста.
MSG должно работать по тому же принципу, т.е. колбэк не должен завершаться пока не закрыли окошко.
Спасибо за инфу, разберусь. Мне кажется, что с подписыванием это не связано.
Я просто не хочу морочиться с подписыванием, пока не готова хотя бы полноценная альфа-версия.
MSG должно работать по тому же принципу, т.е. колбэк не должен завершаться пока не закрыли окошко.
Понятно. Переделаем, попозже.
С подписыванием не нужно морочиться, Оно выполняется двумя кликами.
Дайте графику на gmail, попрошу жену заняться. Пожелания по иконкам вкладок будут?