Android tilemap错误

时间:2014-01-27 21:03:53

标签: java android

我正在尝试显示贴图,但是当我运行我的应用时,屏幕上什么都没有:c

public class MainActivity extends Activity {

LinearLayout tileMap;
int width, height = 1;

int[][] map = {
        {0,0,0,0,0}, 
        {0,0,0,0,0}, 
        {0,0,0,0,0}, 
        {0,0,0,0,0}, 
        {0,0,0,0,0}};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    tileMap = new LinearLayout(this);
    generate(tileMap, this);
    setContentView(tileMap);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

void generate(LinearLayout tileMap, Context context) {

    for(int y = 0; y < height; y++) {
        for(int x = 0 ; x < width; x++) {
            ImageView tile = new ImageView(context);
            tile.setImageResource(R.drawable.wall);
            tileMap.addView(tile);
        }
    }
}
}

你能告诉我我的代码有什么问题吗? 我很确定生成函数中的问题...我已经尝试过做一个ImageView数组,但它也没有用! 谢谢:))

1 个答案:

答案 0 :(得分:0)

问题在于:

int width, height = 1;

您认为宽度已初始化为1,但不是。实际上,它尚未初始化,int的默认值为0。

因此,for(int x = 0 ; x < width; x++) {永远不会投放,因为x < width永远不会评估为true

初始化两者:

int width = 1;
int height = 1;