无法让ImageViews动态显示在活动中

时间:2015-12-21 10:58:42

标签: java android imageview dynamically-generated

我现在已经尝试了几个小时,在stackoverflow上寻找解决方案。 所有适用于他人的解决方案对我来说都不起作用,所以也许我在这里缺少一些东西。

    public void show(View layout){
    RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear);
    for(int i = 0; i < map.size(); i++){
        for(int j = 0; j < map.get(i).size(); j++){
            ImageView image = new ImageView(context);
            switch(map.get(i).get(j)){
                case 0:
                    image.setImageDrawable(context.getDrawable(R.drawable.black));
                    break;
                case 1:
                    image.setImageDrawable(context.getDrawable(R.drawable.white));
                    break;
            }
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(32,32);
            params.setMargins(j * 32, i * 32, 0, 0);
            image.setLayoutParams(params);
            image.invalidate();
            linear.addView(image);
        }
    }
}

它必须绘制的图像是从零和一的文本文件中读取的。 因为下面的函数是一个类而不是一个活动,我传递了ImageViews所必须的布局。

解决:

这就是我修复它的方法:

    public void show(View layout){
    RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear);
    int imageRes;
    for(int i = 0; i < map.size(); i++){
        for(int j = 0; j < map.get(i).size(); j++){
            ImageView image = new ImageView(context);
            switch(map.get(i).get(j)){
                case '0':
                    imageRes = R.drawable.black;
                    break;
                case '1':
                    imageRes = R.drawable.white;
                    break;
                default:
                    imageRes = R.drawable.white;
                    break;
            }
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(32,32);
            params.setMargins(j * 32, i * 32, 0, 0);
            image.setLayoutParams(params);
            image.setBackgroundResource(imageRes);
            linear.addView(image);
        }
    }

0 个答案:

没有答案