这是我想要做的事情的照片:
所有图片都不同,我可以在2-10之间。
我现在的代码是:
(旗帜是图片数量)
(picUris []是我的Uri's数组
RelativeLayout imgLayout = (RelativeLayout) findViewById(R.id.RelativeLayoutPictures);
for (int i = 0; i < flag; i++)
{
ImageView iv = new ImageView(this);
iv.setImageURI(picUris[i]);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
lp.setMargins(50*i, 50*i, 0, 0);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
imgLayout.addView(iv, lp);
}
结果:
问题在于它的调整大小并没有像我想的那样被屏幕切断,而且底部还有一些奇怪的东西。
答案 0 :(得分:0)
为什么不使用Stackview?基本上它会实现精确的结果,而不会让你按顺序创建视图....你不必重新发明轮子......
答案 1 :(得分:0)
所有图片都不同,我可以在2-10之间
我认为您应该使用LayerDrawable并通过例如setLayerInset来抵消每一层。或者在xml
中创建所有背景并将其设置为viewgroup
。我不建议您使用FrameLayout
和RelativeLayout
,因为它们在您的情况下都使用了很多RAM
。