私のアプリは Android フォン (Motorola Milestone) で実行されています。
Splash と MainActivity の 2 つの XML ファイルと、将来のリダイレクト用の ListActivity メニュー ファイルだけがあります。
プロセスは次のとおりです。アプリのデバッグ -> スプラッシュ -> (4 秒間だけ表示) -> メニューにリダイレクト -> 選択時に (CRASH) MainActivity にリダイレクト
Splash.xml と MainActivity.xml には背景画像があり、ここで問題が発生します。テスト用に配置した4つの画像があります。
1. fon.jpg -> 112KB -> 1000x600
2. rockguitar.jpg -> 92KB -> 1280 x 1024
3. intro_low.jpg -> 80KB -> 850 x 1100
4. start_low.jpg -> 56KB -> 850 x 1100
これらのファイルのさまざまな組み合わせを試して、コードが間違っている可能性があるかどうかを確認しましたが、3. と 4. を一緒に使用する場合を除いて、すべてが正しく機能し、画像が表示されます。どの XML でエラーがスローされるかに関係なく:
16830000-byte external allocation too large for this process. VM won't let us allocate 16830000 bytes.
しかし、それは他のどの組み合わせでも機能します (1. と 4.、3. と 2. など)。Photoshop で作成した最後の 2 つの画像が役に立ちます。サイズの問題だったので、小さくしましたが、それでもうまくいきませんでした.
何か案は?
編集: (CRASH) が小さな図にある場合、毎回同じ場所でクラッシュします。
2 番目の部分を編集:
ウィンドウ全体に背景を追加したいので、それを取得すると、4つのリストオプションと下部に1つの背景があります。これが私が持っているすべてのコードです。または、XML ファイルを接続して、すべてのスタイルをそこに入れるにはどうすればよいでしょうか? setContent(R.layout.my_layout) を使用しているため、エラーがスローされます。
public class Menu extends ListActivity {
String classes[] = { "MainActivity", "ex1", "ex2", "ex3" };
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String strClass = classes[position];
Class ourClass;
try {
ourClass = Class.forName("rock.school.rzn.rockquiz." + strClass);
Intent outIntent = new Intent(Menu.this, ourClass);
startActivity(outIntent);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(Menu.this,
android.R.layout.simple_expandable_list_item_1, classes));
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.start_low, options);
BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);
ListView listView = getListView();
listView.setBackgroundDrawable(drawable);
listView.setPadding(0, 150, 0, 0);
}
}