如何通过Touch(android)将imageview置于其他imageview之上

时间:2019-03-04 01:58:55

标签: java android xml android-layout

位于左圆unpressed pressed

所以我有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>

3 个答案:

答案 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"。如果您将视图设置为不同的elevationsimageView.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()

相关问题