Android ViewFlipper:它是否为所有视图加载位图';你的观点是什么?

Android ViewFlipper:它是否为所有视图加载位图';你的观点是什么?,android,memory-management,viewflipper,Android,Memory Management,Viewflipper,问题更多的是关于android的内存分配。我有一个具有多个视图的ViewFlipper,每个视图的背景上都有一个图像。我只是想知道ViewFlipper是否加载了它的所有视图图像,从而占用了太多内存。这部分是关于ViewFlipper初始化的 bgFlipper = (ViewFlipper) findViewById(R.id.bgFlipper); int bgLayouts[] = new int[]{ R.layout.bg1, R.layout.bg2,R.layout.bg3,R.

问题更多的是关于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));
bgripper=(ViewFlipper)findViewById(R.id.bgripper);
int bgLayouts[]=新建int[]{R.layout.bg1,R.layout.bg2,R.layout.bg3,R.layout.bg4,…R.layout.bg100500};/:)
对于(inti=0;iYes,

ViewFlipper会在布局本身时加载它拥有的每个子视图。例如,如果您的ViewFlipper有多个片段,并且在onCreate()上创建了位图,它们都将被创建,无论它们此刻是否可见。因此,您最好小心,在这种情况下,您可以轻松创建OutOfMemoryError。

看起来使用ViewPager更为充分。至少您可以控制正在初始化的页面数(
setOffscreenPageLimit(n)
)。是的,您还可以为ViewPager创建自定义适配器,在那里您可以进行更多的控制。请记住在使用位图后回收位图,这将优化应用程序的内存使用。