我的应用程序正在我的安卓手机(摩托罗拉里程碑)上运行。
我有 2 个 XML 文件,Splash 和 MainActivity,只有一个 ListActivity 菜单文件,用于将来重定向。
流程为:App debug -> Splash ->(仅查看4秒)->重定向到Menu -> on select,(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 中制作的最后两张图像,如果有帮助的话。我通过它是尺寸问题,所以我把它们变小了,但仍然没有运气。
有任何想法吗?
编辑:它每次都在同一地点崩溃,其中 (CRASH) 在小图中。
编辑第二部分:
我想将背景添加到整个窗口,所以当我到达它时,它有这 4 个列表选项和底部的一个背景。这就是我拥有的所有代码。或者我如何连接 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);
}
}