как я могу сделать просмотр изображений выше других изображений при помощи Touch (Android) - PullRequest
0 голосов
/ 04 марта 2019

это левый круг не нажато нажато

, поэтому у меня есть imageview = (Sbler Shaped Drawble Src), когда я касаюсь его, измените Res DrawB другой, так чтоизменение цвета. но я также хочу сделать это выше других изображений, как я могу это сделать, я пытаюсь принести ToToFront, но не работает, есть ли другой способ сделать это?

Я хочу, чтобы то же самое для ВСЕХ из них, когда я нажимал одно изображение, оно находилось перед другими.

         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 голосов
/ 04 марта 2019

используйте RelativeLayout в качестве родителя для imageViews и при каждом вызове изображения imageView view.bringToFront()

0 голосов
/ 05 марта 2019

Я могу опоздать на ответ, но я заметил, что вы указали 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>

Кроме того, поскольку вы использовали RelativeLayout в качестве topLayout для того, чтобы перевести imageView (cir) в конец topLayout, вам придется перевести @+id/layoutTop на передний план, пока он не нажат, рассмотрите следующий код:

 final ImageView imageView = (ImageView) findViewById(R.id.cir);
 final ImageView topLayout = (ImageView) findViewById(R.id.layoutTop);
    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);
                    imageView.bringToFront();
                    break;

                }
                case MotionEvent.ACTION_UP: {
                    imageView.setImageResource(R.drawable.cir);
                    topLayout.bringToFront();
                    break;
                }
            }
            return false;
        }
    });
0 голосов
/ 04 марта 2019
imgView.setVisibility(View.VISIBLE);

imgView.setVisibility(View.INVISIBLE);

imgView.setVisibility(View.GONE);

ИЛИ


<ImageView         
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="invisible"
    android:src="@drawable/your image" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...