アプリケーションでタイル張りの背景に no-dpi ドローアブルを使用してきましたが、うまく機能しますが、メイン アクティビティの onCreate で別のアクティビティを開始すると失敗します。
この動作はエミュレーターでは発生しないため、デバイスに関連していると思われます。これをテストするためにSamsung 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" />