按顺序显示多个图像

时间:2015-02-14 20:32:43

标签: android imageview bringtofront

我有一个带有前置方法的问题。 我一次使用很多图像。所有的举动都在不断进行。 我想改变图像的z索引取决于它们的坐标。 有没有办法呢?

我可以在移动图像时检查每个图像的坐标。然后按顺序使用,但解决方案对我来说似乎并不清楚。

编辑:

我添加了一些代码。计算并不重要。 rl是相对布局。当我点击rl时,创建一个图像。问题是当我创建一个图像时,它来自于旧的。 我想,哪个图像的y指数值更大。将成为别人的前方。

图片:http://i.hizliresim.com/blkyzj.jpg

第1步:我创建了绿色方块。 第2步:我创建了棕色方块。 - >布朗处于绿色背后,因为绿色具有更大的y值。 我每次创建图像时都可以检查y坐标,但图像也会移动。检查y值并且每次移动时都会出现问题。此外还有30张图片...... 有没有办法像image.zindex = ycoordinate * -1;

    rl.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View arg0, MotionEvent arg1) {
                    if (arg1.getAction() == MotionEvent.ACTION_DOWN) {
                        final int finalX = (int) (Math.floor(arg1.getX() - (width * 5.93667 / 100))/(width*12.53290/100));
                        final int finalY = (int) (Math.floor(arg1.getY() - (height * 11.04784 / 100))/(height*7.73524/100));
                        characters.add(new Character());
                        characters.get(characters.size()-1).image = new ImageView(InPlay.this);
                        characters.get(characters.size()-1).image.setScaleType(ImageView.ScaleType.FIT_XY);
                        characters.get(characters.size()-1).image.setBackgroundResource(getId(towerid[activet], R.drawable.class));
                        characters.get(characters.size()-1).anim = (AnimationDrawable)     characters.get(characters.size()-1).image.getBackground();
                        rl.addView(characters.get(characters.size()-1).image, characters.get(characters.size()-1).lp);
                        characters.get(characters.size()-1).image.getLayoutParams().width = (int) (width*12.53290/100) + (int)(characters.get(characters.size()-1).size * (width/10));
                        characters.get(characters.size()-1).image.getLayoutParams().height = (int) (height*7.73524/100) +  (int)(characters.get(characters.size()-1).size * (height/10));
                        characters.get(characters.size() - 1).x= (float) ((finalX * (width*12.53290/100))+ (width * 5.93667 / 100)) - (float)(characters.get(characters.size()-1).size * (width/20));
                        characters.get(characters.size() - 1).y= (float) ((finalY * (height*7.73524/100))+ (height * 11.04784 / 100)) - (float)(characters.get(characters.size()-1).size * (height/10));
                        characters.get(characters.size()-1).image.setX((float) ((finalX * (width*12.53290/100))+ (width * 5.93667 / 100)) -(float)(characters.get(characters.size()-1).size * (width/20)));
                        characters.get(characters.size()-1).image.setY((float) ((finalY * (height*7.73524/100))+ (height * 11.04784 / 100)) - (float)(characters.get(characters.size()-1).size * (height/10)));

        }

1 个答案:

答案 0 :(得分:0)

查看管理许多Drawable的LayerDrawable,您可以根据数组顺序设置哪一层在顶部。这可能需要一点阵列操作,但我认为它是一种相对较轻的方式来跟踪层。您可以轻松检查屏幕上可绘制的位置,并根据需要更改阵列顺序。