-1

我有 5 个自定义 ImageView,我想制作一个拼贴应用程序演示,因此我想在点击时将前面的特定 imageView 放在前面,我已经尝试过为此的BringtoFront方法,但它不起作用,所以任何朋友都可以帮我解决这个问题,我的xml和java代码如下

xml

 <RelativeLayout
        android:id="@+id/rl_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/tv_hdr" >

        <ImageView
            android:id="@+id/collageBgView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:background="#191919" />

        <PhotoLib.CollageView
            android:id="@+id/collageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />

        <PhotoLib.CollageView
            android:id="@+id/collageView2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />

        <PhotoLib.CollageView
            android:id="@+id/collageView3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />

        <PhotoLib.CollageView
            android:id="@+id/collageView4"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />

        <PhotoLib.CollageView
            android:id="@+id/collageView5"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />

        <PhotoLib.CollageView
            android:id="@+id/collageView6"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />

        <PhotoLib.CollageView
            android:id="@+id/collageView7"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:scaleType="fitXY" />
    </RelativeLayout>

爪哇

RelativeLayout rl_main;
cl1 = (CollageView) findViewById(R.id.collageView1);
cl2 = (CollageView) findViewById(R.id.collageView2);
cl3 = (CollageView) findViewById(R.id.collageView3);
cl4 = (CollageView) findViewById(R.id.collageView4);
collageBgView = (ImageView) findViewById(R.id.collageBgView);
rl_main = (RelativeLayout) findViewById(R.id.rl_main);

findViewById(R.id.collageView1).setOnClickListener(
        new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                cl1.bringToFront();
                cl2.invalidate();
                cl3.invalidate();
                cl4.invalidate();
                rl_main.invalidate();

            }
        });
findViewById(R.id.collageView2).setOnClickListener(
        new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                cl2.bringToFront();
                cl1.invalidate();
                cl3.invalidate();
                cl4.invalidate();
                rl_main.invalidate();

            }
        });
findViewById(R.id.collageView3).setOnClickListener(
        new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                cl3.bringToFront();
                cl2.invalidate();
                cl1.invalidate();
                cl4.invalidate();
                rl_main.invalidate();

            }
        });
findViewById(R.id.collageView4).setOnClickListener(
        new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                cl4.bringToFront();
                cl2.invalidate();
                cl3.invalidate();
                cl1.invalidate();
                rl_main.invalidate();

            }
        });

cl1.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        cl1.bringToFront();
        cl2.invalidate();
        cl3.invalidate();
        cl4.invalidate();
        rl_main.invalidate();
        return false;
    }
});
cl2.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        cl2.bringToFront();
        cl1.invalidate();
        cl3.invalidate();
        cl4.invalidate();
        rl_main.invalidate();
        return false;
    }
});
cl3.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        cl3.bringToFront();
        cl2.invalidate();
        cl1.invalidate();
        cl4.invalidate();
        rl_main.invalidate();
        return false;
    }
});
cl4.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        cl4.bringToFront();
        cl2.invalidate();
        cl3.invalidate();
        cl1.invalidate();
        rl_main.invalidate();
        return false;
    }
});
4

2 回答 2

0

只需yourView.bringToFront()对您想要在相对布局中置于前面的视图使用唯一的方法。

于 2015-04-08T10:58:56.160 回答
0

我认为你可以使用:

@Override
                public void onClick(View v) {

                    cl1.setVisibility(View.VISIBLE);
                    cl2.setVisibility(View.GONE);
                    cl3.setVisibility(View.GONE);
                    cl4.setVisibility(View.GONE);
                    rl_main.setVisibility(View.GONE);

                }
            });

你正在使用 relativelayout,所以如果你的 ImageView 不是很大,那么隐藏应该对你有用。使用大量图像时要小心,这可能会给您带来记忆问题

于 2015-04-08T09:11:57.843 回答