多次使用图像

时间:2013-11-12 19:07:52

标签: image

我想我有一个非常简单的问题,我真的不明白为什么它实际上是一个问题:( 我创建一些图像,然后我将它们添加到表格中。 这工作正常,直到我想多次使用一个图像,然后程序崩溃。 (告诉我我必须先调用removeView(),但我真的不想这样做,对吧?)

现在代码,它为一个测量值选择了一个合适的图像。 它总是添加4个图像。有时corse值相似,则需要多次一个图像。

    ImageView imgGreen = new ImageView(this);
    ImageView imgYellow = new ImageView(this);        
    ImageView imgOrange = new ImageView(this);        
    ImageView imgRed = new ImageView(this);

    // allocate Images
    imgGreen.setImageResource(R.drawable.green);
    imgYellow.setImageResource(R.drawable.yellow);  
    imgOrange.setImageResource(R.drawable.orange);
    imgRed.setImageResource(R.drawable.red);

    // add Images
    for(int i = 0; i < 4; i++){
        switch(controller.array[1][i])
        {
            case 0: row.addView(imgGreen);  
                    break;
            case 1: row.addView(imgYellow);  
                    break;
            case 2: row.addView(imgOrange);   
                    break;
            case 3: row.addView(imgRed); 
                    break;      
            default: row.addView(imgRed);
                    break;
        }
    }

任何帮助将不胜感激:) 提前谢谢!

问候

2 个答案:

答案 0 :(得分:0)

一种解决方案是复制图像资源,然后第二次添加克隆。看起来每个addView调用都需要唯一的对象。

答案 1 :(得分:0)

如果有人有兴趣,请在这里找到合适的解决方案:

    for(int i = 0; i < 4; i++){
        ImageView img = new ImageView(this);
        switch(controller.array[1][i])
        {
        case 0:
            img.setImageResource(R.drawable.green);
            break;
        case 1:
            img.setImageResource(R.drawable.yellow);
            break;
        case 2:
            img.setImageResource(R.drawable.orange);
            break;
        case 3:
            img.setImageResource(R.drawable.red);
            break;
        default:
            img.setImageResource(R.drawable.red);
            break;
        }
        row.addView(img);
    }

现在比以前更少的代码:)

问候