【发布时间】:2013-01-05 00:01:04
【问题描述】:
我正在制作一个益智游戏,我必须同时在屏幕上显示 16 个图像 (4 X 4)。我正在尝试设置图像的高度和宽度,但高度和宽度的值没有改变图像大小。此外,只出现了 4 张图像而不是 16 张图像。我正在使用以下代码来显示图像:
public void display()
{
LinearLayout llMain = new LinearLayout(this);
for(int i=0;i<4;i++)
{
LinearLayout llRow = new LinearLayout(this);
for(int j=i*4;j<tiles.length/4;j++)
{
ImageView iv = new ImageView(this);
iv.setImageBitmap(tiles[j]);
iv.setAdjustViewBounds(true);
iv.setMaxHeight(tileHeight);
iv.setMaxWidth(tileWidth);
iv.setMinimumHeight(tileHeight);
iv.setMinimumWidth(tileWidth);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
iv.setLayoutParams(params);
llRow.addView(iv);
}
llMain.addView(llRow);
}
setContentView(llMain);
}
谁能告诉我我做错了什么?
提前致谢
【问题讨论】:
-
我认为您需要将
LinearLayouts 之一更改为垂直方向。llMain.setOrientation(LinearLayout.VERTICAL); -
我看到的下一个问题是你的循环计数器。当 i==0 时,您从 j=0 变为 j=4;当 i==1 时,您从 j=4 变为 j=4;当 i==2 你从 j=8 到 j=4... 你想要
for (int j=0; j<4; ++j)和iv.setImageBitmap(tiles[i*4 + j])。 -
那么,setminimumWidth 对你有用吗?如果你有任何解决方案,请分享
标签: android android-layout imageview android-image