所以我有imageview =(形状的drawble src),当我触摸它时,将drawble res更改为其他 所以颜色变化。但是我也想将其置于其他imageviews之上,我该怎么做,我尝试BringToFront却不起作用,还有另一种方法吗?
当我按下一个图像视图时,我希望所有图像都一样。
final ImageView imageView = (ImageView) findViewById(R.id.cir);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("IMAGE", "motion event: " + event.toString());
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
imageView.setImageResource(R.drawable.cir_press);
break;
}
case MotionEvent.ACTION_UP: {
imageView.setImageResource(R.drawable.cir);
break;
}
}
return false;
}
});
<RelativeLayout
android:id="@+id/layoutBottom"
android:layout_width="match_parent"
android:layout_height="356dp"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:gravity="bottom|center">
<ImageView
android:id="@+id/cir"
android:elevation="4dp"
android:layout_width="184dp"
android:layout_height="313dp"
android:layout_alignParentBottom="true"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:layout_marginEnd="63dp"
android:layout_marginRight="63dp"
android:layout_marginBottom="43dp"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:src="@drawable/cir"
/>
<ImageView
android:id="@+id/cir2"
android:layout_width="150dp"
android:layout_height="186dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_gravity="center_vertical"
android:layout_marginStart="211dp"
android:layout_marginLeft="211dp"
android:layout_marginTop="38dp"
android:layout_marginBottom="132dp"
android:gravity="center"
android:padding="5dp"
android:src="@drawable/cir2"
/>
<ImageView
android:id="@+id/cir3"
android:layout_width="205dp"
android:layout_height="140dp"
android:layout_alignBottom="@+id/cir2"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="false"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginEnd="0dp"
android:layout_marginRight="0dp"
android:layout_marginBottom="-127dp"
android:padding="5dp"
android:src="@drawable/cir3" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/layoutTop"
android:layout_width="match_parent"
android:layout_height="231dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="38dp"
android:gravity="bottom">
<ImageView
android:id="@+id/cir4"
android:layout_width="wrap_content"
android:layout_height="212dp"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="23dp"
android:layout_marginLeft="23dp"
android:layout_marginEnd="14dp"
android:layout_marginRight="14dp"
android:elevation="10dp"
android:gravity="bottom|center"
android:src="@drawable/cir4"
/>
</RelativeLayout>
</RelativeLayout>
答案 0 :(得分:1)
imgView.setVisibility(View.VISIBLE);
imgView.setVisibility(View.INVISIBLE);
imgView.setVisibility(View.GONE);
OR
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:src="@drawable/your image" />
答案 1 :(得分:1)
我可能来不及回答,但是我注意到您在布局中输入了import-module "xxxxx"
。如果您将视图设置为不同的elevations
,imageView.bringToFront()
将无法正常工作,而且您的elevations
设置为@+id/layoutTop
可能会导致match_parent
停止工作,所以我已经这样调整了您的布局。
imageView.setOnTouchListener
此外,由于您已使用<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutBottom"
android:layout_width="match_parent"
android:layout_height="356dp"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom" android:gravity="bottom|center">
<ImageView
android:id="@+id/cir"
android:layout_width="184dp"
android:layout_height="313dp"
android:layout_alignParentBottom="true"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:layout_marginEnd="63dp"
android:layout_marginRight="63dp"
android:layout_marginBottom="43dp"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:src="@drawable/cir"
/>
<ImageView
android:id="@+id/cir2"
android:layout_width="150dp"
android:layout_height="186dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_gravity="center_vertical"
android:layout_marginStart="211dp"
android:layout_marginLeft="211dp"
android:layout_marginTop="38dp"
android:layout_marginBottom="132dp"
android:gravity="center"
android:padding="5dp"
android:src="@drawable/cir"
/>
<ImageView
android:id="@+id/cir3"
android:layout_width="205dp"
android:layout_height="140dp"
android:layout_alignBottom="@+id/cir2"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="false"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginEnd="0dp"
android:layout_marginRight="0dp"
android:layout_marginBottom="-127dp"
android:padding="5dp"
android:src="@drawable/cir"/>
<RelativeLayout
android:id="@+id/layoutTop"
android:layout_width="wrap_content"
android:layout_height="231dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="38dp"
android:gravity="bottom">
<ImageView
android:id="@+id/cir4"
android:layout_width="wrap_content"
android:layout_height="212dp"
android:layout_alignWithParentIfMissing="true"
android:layout_marginStart="23dp"
android:layout_marginLeft="23dp"
android:layout_marginEnd="14dp"
android:layout_marginRight="14dp"
android:gravity="bottom|center"
android:src="@drawable/cir"
/>
</RelativeLayout>
</RelativeLayout>
作为topLayout以便将imageView RelativeLayout
带到topLayout的后面,因此在处于非按下状态时必须将(cir)
带到前面,请考虑以下代码:
@+id/layoutTop
答案 2 :(得分:0)
使用RelativeLayout作为imageView的父级,并在每个imageView上单击调用view.bringToFront()