Android 将图像动态添加到布局会导致内存不足错误

Android 将图像动态添加到布局会导致内存不足错误,android,Android,我有大约40个小图像,我想动态地将它们添加到布局中。但这会导致某些设备出现内存错误 下面是我的代码片段,用于在按钮为LinearLayout tables= LinearLayout tables= (LinearLayout) findViewById(R.id.table); undo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {

我有大约40个小图像,我想动态地将它们添加到布局中。但这会导致某些设备出现内存错误

下面是我的代码片段,用于在按钮为LinearLayout tables=

LinearLayout tables=  (LinearLayout) findViewById(R.id.table);
    undo.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {



            for(int i = 0; i < data.length; i++){
                ImageView image = new ImageView(getApplicationContext());
                try{
                    int imgID = getResources().getIdentifier(data[i], "drawable", "package");
                    image.setImageResource(imgID);

                }catch(Exception e){
                    int imgID = getResources().getIdentifier("nia", "drawable", "package");
                    image.setImageResource(imgID);
                }               
                tables.addView(image); 
            }
        }
    });
LinearLayout tables=(LinearLayout)findViewById(R.id.table);
undo.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i

有人能告诉我需要做什么来避免内存错误吗???

是否在listview中显示图像?您是否在一个屏幕上显示40幅图像?请准确说明您认为的“小图像”是什么。有大小为20kB的JPG图像,在加载和缩放时,可能(暂时)需要8MB进行解压缩和缩放。那么它们的文件大小是否很小,或者尺寸是否很小,你是否要求Android缩放它们?你可以使用listview或grid视图,并使用惰性加载或通用图像加载程序加载图像。我不确定,但如果ImageView每次都可以在同一屏幕上显示listview和其他视图,你可以尝试findViewById来获取ImageView,而不是创建新实例。不使用时循环使用imageview。