下面是两种情况的代码,先说明一下疑点:前者布局图片在同一个位置,而后者达到了预期的情况,出现3行3列的布局,至于原因貌似没想明白,请求高手解释???
代码一如下
RelativeLayout.LayoutParams relativelps=new RelativeLayout.LayoutParams
(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
for (int j = 0;j < cols;j ++){//cols列
relativelps.leftMargin=j*160;
relativelps.topMargin=i*160;
Log.i("VARIOUS", "i="+relativelps.leftMargin+";j="+relativelps.topMargin);
ImageView cutView = new ImageView(this);
//为cutView设定id,初值为1000,依此到1008
cutView.setId(RES_ID_BASE + i * cols + j);//RES_ID_BASE初始值为1000
cutView.setImageBitmap(Bitmap.createBitmap(resizeBitmap,
j * blockWidth, i * blockHeight, blockWidth, blockHeight));
relative.addView(cutView,relativelps);
}}
代码片段二:
for (int j = 0;j < cols;j ++){//cols列
RelativeLayout.LayoutParams relativelps=new RelativeLayout.LayoutParams
(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
relativelps.leftMargin=j*160; relativelps.topMargin=i*160; Log.i("VARIOUS", "i="+relativelps.leftMargin+";j="+relativelps.topMargin); ImageView cutView = new ImageView(this); //为cutView设定id,初值为1000,依此到1008 cutView.setId(RES_ID_BASE + i * cols + j);//RES_ID_BASE初始值为1000 cutView.setImageBitmap(Bitmap.createBitmap(resizeBitmap, j * blockWidth, i * blockHeight, blockWidth, blockHeight)); relative.addView(cutView,relativelps); }}