Когда я устанавливаю тему, она не обновляется на устройстве - PullRequest
3 голосов
/ 23 февраля 2011

Я хочу, чтобы в моем приложении использовалась анимация «увеличения», например, в Google Maps, поэтому при запуске приложения вы получаете мгновенную анимацию экрана заголовка.Я сделал это успешно в одном названии, но изменение существующего приложения для этого оказалось ... сложным ... и поэтому мне интересно, какое волшебство, которым я управлял в предыдущем приложении, не попало в новое приложение.

У меня есть тема, определенная так:

<style name="startstyle" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
    <item name="android:background">@drawable/recharge</item>
</style>

Где есть recharge.png в res / drawable.

В файле "theme.xml" в res / values, и я на него ссылаюсь так:

<activity android:name=".MainActivity" 
  android:theme="@style/startstyle" <!-- more ... -->
</activity>

Когда я работал над другим приложением, мне пришлось удалить и переустановитьприложение, чтобы получить изменения в теме, чтобы фактически когда-либо появляться.Затем, как только он появился, он всегда работал.

Но новое приложение никогда не выполняет масштабирование, хотя при первом запуске на определенном устройстве оно отображает изображение «recharge.png».Но потом (даже после убийства приложения) оно больше не показывается;он просто обрезает черный экран перед тем, как показывать титульный экран.Хорошо, дальнейшее тестирование показывает, что если я убью приложение, подожду 10 секунд, а затем снова запустлю, я могу снова показать recharge.png, но он никогда не выполняет анимацию масштабирования.

Не похожечтобы всегда обновляться при смене темы, поэтому я должен подозревать, что есть кэш, который необходимо очистить.

Мое приложение основано на NDK, а само приложение выполняет весь рендеринг в OpenGL,но похоже, что анимация «увеличения» должна произойти еще до того, как мое приложение будет полностью инициализировано.Я ошибся?Я убиваю его, например, голоданием процессора?Мысли?

1 Ответ

1 голос
/ 19 июля 2011

Мне никогда не удавалось отследить это с какой-либо степенью уверенности, но кажется, что я столкнулся с несколькими разными вещами:

  • Иногда информация кэшируется на неопределенный период времени.
  • Эффект «увеличения» не работает на Android, если у вас есть приложение (игра) только для альбомной ориентации, и оно уменьшается из портретного режима.
  • Затмение отстой, а иногда и не замечает, что все меняется, если вы не обновитесь перед сборкой. А иногда F5 даже не отображается для обновления, , поэтому даже если вы нажмете F5, чтобы обновить проект (даже после нажатия на проекте!), Оно не будет обновлено. Я подтвердил это, щелкнув правой кнопкой мыши и увидев, что ярлык «F5» иногда отсутствует в меню правой кнопки мыши.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...