0

问题更多是关于android的内存分配。我有一个 ViewFlipper 有几个视图,每个视图都有一个背景图像。我只想知道 ViewFlipper 是否加载了所有的视图图像,因此它使用了太多的内存。这部分是关于 ViewFlipper 初始化的

bgFlipper = (ViewFlipper) findViewById(R.id.bgFlipper);

int bgLayouts[] = new int[]{ R.layout.bg1, R.layout.bg2,R.layout.bg3,R.layout.bg4,...R.layout.bg100500}; // :)
for (int i = 0;i<bgLayouts.length; i++)
    bgFlipper.addView(inflater.inflate(bgLayouts[i], null));

所以问题是我是否需要动态添加视图,或者 ViewFlipper 已经为我完成了,我不应该担心其视图背景上的那些位图,即内存分配?

4

1 回答 1

0

是的,ViewFlipper 会在它自己布局的那一刻加载它拥有的每个子视图。因此,例如,如果您的 ViewFlipper 有多个 Fragment 以及在 onCreate() 上创建的位图,那么无论它们目前是否可见,它们都将被创建。所以你最好小心,在这种情况下你可以很容易地创建 OutOfMemoryError 。

于 2013-12-30T11:15:06.420 回答