私は 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;
}
});