0

我一直在我的应用程序中为平铺背景使用 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" />
4

1 回答 1

0

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

于 2012-05-31T16:20:44.967 回答