-1

私は 5 つのカスタム ImageViews を持っています。コラージュ アプリのデモを作成したいので、タップしたときに特定の 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 に答える