当立即开始其他活动时,背景图像忽略平铺

时间:2011-08-18 13:56:06

标签: android

我似乎遇到了某种奇怪的问题,平铺背景在某些条件下会变得很紧张。

我的应用程序有一个欢迎屏幕(已登录/注销),因为它是主要活动。如果用户已登录,则他/她将自动从onCreate方法重定向到另一个活动。

问题是,只要发生这种情况,应用程序窗口的平铺背景就会被拉伸。

现在,只要我“看到”主要活动,平铺就能完美适用于所有背景。也就是说,如果我从startIntent移除对onCreate的通话 - 或 - 如果我“返回”欢迎屏幕并继续从那里开始。

我也试过从onResume“跳”,但问题仍然存在。

通过themes.xml设置背景

<item name="android:windowBackground">@drawable/application_background</item>

drawable/application_background.xml(还包括一个微妙的渐变)

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <bitmap android:src="@drawable/noise" android:tileMode="repeat" />
  </item>
  <item>
    <shape android:shape="rectangle">
      <gradient android:angle="90"
                android:startColor="#3000"
                android:endColor="#0000" />
    </shape>
  </item>
</layer-list>

WelcomeActivity.java

的相关代码
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.welcome);

  // ... init buttons etc

  // Jump directly to the reading list user already has valid credentials
  if(hasValidCredentials()) {
    startActivity(new Intent(this, ActivityReadingList.class));
  }
}

该问题的粗略Gimp插图:

Tiling Issue Android

任何帮助都将不胜感激。

谢谢, / C

1 个答案:

答案 0 :(得分:2)

我也遇到了这个问题而且它很烦人,因为网上没有任何帮助来解决这个问题。所以,我假设它是SDK中的一个错误。

无论如何,要克服这个问题,这是我的黑客:


制作application_background.xml的另一个副本,例如:

原文:application_background.xml

copy:copy_application_background.xml

现在将您的一项活动与原始背景相关联,第二项与副本

相关联

活动一:

<item name="android:windowBackground">@drawable/application_background</item>

活动二:

<item name="android:windowBackground">@drawable/copy_application_background</item>

希望它对你有用,因为它确实对我有用。

我猜这个问题是背景缓存的问题,因为两个活动都使用相同的源,当活动在显示自己之前调用另一个活动时,它会导致陷阱陷入困境