我正在开发一款有趣的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%。那应该确保图像周围没有透明区域。