【发布时间】:2016-11-30 20:32:04
【问题描述】:
我正在开发一款有趣的 Android 游戏,但我无法删除 LinearLayout 中 ImageView 之间的空间。 这些布局中没有定义数量的 ImageView,这就是我不处理 XML 文件的原因。 因此,我在我的 Java 代码中创建了每个 ImageView,并将它们添加到我的布局中。 但是它们之间有空格: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 添加了透明边框(不知道为什么),但我已经通过编辑生成的图像并为透明部分着色来解决它。
【问题讨论】:
-
请提供添加图像视图的代码!
-
请分享您的代码
-
试试
imageView.setScaleType(ImageView.ScaleType.FIT_XY); -
已添加代码。我试过
setScaleType(),但它不起作用 -
@Rallph 你确定你的drawables不包括空白空间吗?
标签: java android android-layout imageview android-linearlayout