我正在开发一款有趣的Android游戏,无法在LinearLayouts中删除ImageViews之间的空间。
在这些布局中没有定义的ImageViews数量,这就是为什么我不处理XML文件的原因。
因此,我已经在Java代码中创建了每个ImageView,并将它们添加到了Layout中。
但是它们之间都有空白:Spaces between ImageViews(蓝色/红色/绿色方块是ImageViews)。
我从GridLayout开始,但是我无法删除该空白,因此我尝试将一些LinearLayouts(水平)插入其他LinearLayout(垂直)。

我已经尝试了很多事情,例如将setMargin和Padding设置为0,创建一个LayoutParams来删除它们,等等..但是它没有用。

谢谢 !

编辑:这是我的代码

iv = new ImageView[cm.getNbRow()][cm.getNbColumn()];    //cm is the map object

LinearLayout[] linearTab = new LinearLayout[cm.getNbColumn()];
for(int i=0; i<cm.getNbRow(); i++) {
    linearTab[i] = new LinearLayout(this);
    linearTab[i].setOrientation(LinearLayout.HORIZONTAL);
}

for(int i=0; i<cm.getNbRow(); i++) {
    for(int ii = 0; ii < cm.getNbColumn(); ii++) {
        if(cm.getMap()[i][ii] == 1) {
            iv[i][ii] = new ImageView(this);
            iv[i][ii].setImageResource(R.drawable.wall);
        } else if(cm.getMap()[i][ii] == 2) {
            p = new Player(i, ii, this, cm);
            iv[i][ii] = new ImageView(this);
            iv[i][ii].setImageResource(R.drawable.player);
        } else if(cm.getMap()[i][ii] == 3) {
            iv[i][ii] = new ImageView(this);
            iv[i][ii].setImageResource(R.drawable.stop);
        } else {
            iv[i][ii] = new ImageView(this);
            iv[i][ii].setImageResource(R.drawable.path);
        }
        linearTab[i].addView(iv[i][ii]);        //Horizontal LinearLayout
    }
    ll.addView(linearTab[i]);                   //Vertical LinearLayout
}


编辑2:Android Studio向ImageViews添加了透明边框(不知道为什么),但是我已经通过编辑生成的图像并为透明部分着色来解决了该问题。

最佳答案

导入图像时,需要确保将“修剪”选项设置为“是”,并且将“填充”设置为0%。那应该确保图像周围没有透明区域。

07-26 00:36