如何动态实现多图像分层效果?

时间:2016-03-25 20:54:47

标签: java android android-studio

这是我想要做的事情的照片:

http://i.stack.imgur.com/pQO2r.png

所有图片都不同,我可以在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);
        }

结果:

http://i.stack.imgur.com/pYD7x.jpg

问题在于它的调整大小并没有像我想的那样被屏幕切断,而且底部还有一些奇怪的东西。

2 个答案:

答案 0 :(得分:0)

为什么不使用Stackview?基本上它会实现精确的结果,而不会让你按顺序创建视图....你不必重新发明轮子......

答案 1 :(得分:0)

  

所有图片都不同,我可以在2-10之间

我认为您应该使用LayerDrawable并通过例如setLayerInset来抵消每一层。或者在xml中创建所有背景并将其设置为viewgroup。我不建议您使用FrameLayoutRelativeLayout,因为它们在您的情况下都使用了很多RAM