【问题标题】:Not able to overlap images无法重叠图像
【发布时间】:2014-02-10 21:00:21
【问题描述】:

我需要一张一张地重叠图像。 下面是我的代码

int cards[] = {R.drawable.c1,R.drawable.c2,R.drawable.c3,R.drawable.c4,R.drawable.c5,R.drawable.c6,
            R.drawable.c7,R.drawable.c8,R.drawable.c9,R.drawable.c10,R.drawable.c11,R.drawable.c12,R.drawable.c13};

    ImageView[] Images = new ImageView[cards.length];
        for (int i = 0; i < cards.length; i++) {           
            Images[i] = new ImageView(this);

            Images[i].setImageBitmap(BitmapFactory.decodeResource(getResources(), cards[i]));
            Images[i].setId(i);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
            if (i != 0) {                
                params.addRule(RelativeLayout.RIGHT_OF,Images[i - 1].getId());
              params.addRule(RelativeLayout.ALIGN_PARENT_TOP, Images[i - 1].getId());
              layout.addView(Images[i], params);
            } else {
                params.addRule(RelativeLayout.LEFT_OF,Images[0].getId());
                params.rightMargin=10;
                layout.addView(Images[i]);
            }

       }

这样,我无法显示第一张图像,并且显示剩余图像但不会与其他图像重叠。 如何解决这个问题?

【问题讨论】:

    标签: android imageview overlapping


    【解决方案1】:

    终于可以在link的帮助下解决问题

    ImageView[] Images = new ImageView[cards.length];
            for (int i = 0; i < cards.length; i++) {           
                Images[i] = new ImageView(this);
    
                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                        RelativeLayout.LayoutParams.WRAP_CONTENT,
                        RelativeLayout.LayoutParams.WRAP_CONTENT);
                if (i != 0) {          
                     params.addRule(RelativeLayout.ALIGN_TOP, i-1);
                     params.addRule(RelativeLayout.ALIGN_LEFT,i-1);
                     params.leftMargin= 40;
                     Images[i].setImageBitmap(BitmapFactory.decodeResource(getResources(), cards[i]));
                     Images[i].setId(i);
                    layout.addView(Images[i], params);
                } else {
                     Images[i].setImageBitmap(BitmapFactory.decodeResource(getResources(), cards[i]));
                     Images[i].setId(i);
                    layout.addView(Images[i], params);
                }
    
            }
    

    【讨论】:

      【解决方案2】:

      代码完全错误:) 你知道 RIGHT_OF 和 LEFT_OF 是什么意思吗? 只需删除所有 if else 部分,您应该会看到所有 te 图像一个在另一个之上。 顺便说一句,有更好的方法可以在 Android 上堆叠图像,例如 LayerDrawable 类。

      【讨论】:

      • 我非常了解这些事情,如果我删除 if else 部分,我们只能看到一张图片...最好正确给出答案,而不是错误的建议和答案...
      • 你想达到什么目的?从图片上看不是很清楚。您说您的图像没有重叠,但您的代码实际上试图将它们彼此相邻
      • 是的,上面的代码第一张图像没有出现在屏幕上....我可以并排显示图像,但我希望它们像第一张和第三张图像上的第二张图像一样重叠2日以此类推....
      • 你的意思是重叠显示一个在另一个之上?
      猜你喜欢
      • 2013-05-21
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多