我一直在我的应用程序中为平铺背景使用 no-dpi drawables,它工作得很好,但是当我在我的主要活动的 onCreate 中启动另一个活动时它失败了。
这种行为不会发生在模拟器中,这让我认为它与设备有关。我正在使用三星 Galaxy Note 在(Android 2.3.6)上进行测试。
再生产
出于调试目的,我创建了一个新项目,将 tile.png 添加到 drawable-nodpi 文件夹,在 drawable 文件夹中创建 bg_tile.xml 并将 main.xml 布局文件中的背景设置为“@drawable/bg_tile”
到现在为止还挺好:
http://i.stack.imgur.com/FGrr1.png
现在我将main.xml复制到了secondary.xml,并创建了另一个使用 secondary.xml 的活动。
要打开次要活动,我已将其添加到主要活动的 onCreate 中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent activityIntent = new Intent(this, NoDPISecondaryActivity.class);
this.startActivity(activityIntent);
}
辅助活动应显示与主活动相同的平铺背景,但它会缩放可绘制对象:
http://i.stack.imgur.com/9Xwwp.png
接下来是什么?
这只是三星相关的事情,我必须学会忍受,或者有没有人知道发生了什么以及如何解决这种行为?
我的观察:
按“返回”返回到正确显示平铺背景的主要活动。
此外,当我使用带有 OnClickListener 的按钮启动辅助活动时,它会正确显示
bg_tile.xml文件的内容:
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="repeat" />