当我设置主题时,它不会在设备上更新

时间:2011-02-23 20:11:59

标签: android themes

我想要的是我的应用程序具有由Google地图使用的“放大”动画,因此当您启动应用程序时,您将获得即时标题屏幕动画。我在一个标题中成功地做到了这一点,但改变一个现有的应用程序来做到这一点已经证明...复杂......所以我想知道我在之前的应用程序中管理的魔法没有进入新应用程序。< / p>

我的主题定义如下:

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

res / drawable中有一个recharge.png。

在res / values中的文件“theme.xml”中,我像这样引用它:

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

当我在处理另一个应用时,我不得不卸载并重新安装应用以更改主题以实际显示。一旦它出现,它总是有效。

但是新的应用程序永远不会进行缩放,但是在特定设备的第一次运行中,它会显示“recharge.png”图像。但后来(甚至在杀死应用程序之后)它再也没有显示出来;它只是在显示标题屏幕之前切换到黑屏。好的,更多的测试表明,如果我杀了应用程序,等待10秒,然后再次运行,我可以再次充值,然后再进行显示,但它永远不会进行缩放动画。

当我更改主题时似乎并不总是更新,因此我不得不怀疑需要清除缓存。

我的应用程序是基于NDK的,应用程序本身在OpenGL中完成所有渲染,但似乎应该在我的应用程序甚至完全初始化之前发生“缩放”动画。我错了吗?例如,我是通过挨饿CPU来杀死它吗?想法?

1 个答案:

答案 0 :(得分:1)

我无法用任何确定性来追踪这一点,但似乎我遇到了一些不同的事情:

  • 有时, 信息会在不确定的时间段内缓存。
  • 当您拥有仅限横向应用(游戏)且从纵向模式缩小时,“放大”效果在Android上无效。
  • Eclipse糟透了,有时候没有注意到事情发生了变化,除非你在构建之前刷新。有时F5 甚至没有映射到刷新,所以即使你按F5来刷新你的项目(即使在项目中点击之后!)它也不会刷新。我通过右键单击并查看右键菜单中有时会缺少“F5”快捷方式来验证这一点。