nodpi drawables在onCreate中立即启动的另一个活动中使用时失败

时间:2012-05-24 22:34:11

标签: android drawable

我一直在我的应用程序中使用no-dpi drawables来处理平铺背景并且效果很好,但是当我在main-activity的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);
}

辅助活动应显示与主活动中相同的平铺背景,但它会缩放drawable:

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" />

1 个答案:

答案 0 :(得分:0)

将Galaxy Note更新到Android 4.0后,这已解决。看起来这是供应商/设备特定的错误。