我似乎遇到了某种奇怪的问题,平铺背景在某些条件下会变得很紧张。
我的应用程序有一个欢迎屏幕(已登录/注销),因为它是主要活动。如果用户已登录,则他/她将自动从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插图:
任何帮助都将不胜感激。
谢谢, / C
答案 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>
希望它对你有用,因为它确实对我有用。
我猜这个问题是背景缓存的问题,因为两个活动都使用相同的源,当活动在显示自己之前调用另一个活动时,它会导致陷阱陷入困境