0

私のアプリは 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);
    }

}
4

1 に答える 1