Касание нескольких изображений с удержанием в Android - PullRequest
0 голосов
/ 03 июля 2011

У меня есть main.xml файл:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
>

<ImageView 
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/z01"
    />
<ImageView 
    android:id="@+id/img2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/z02"
    />

</LinearLayout>

Я пытаюсь достичь:

  • когда пользователь касается и удерживает img1, изображение изменяется на нажатую картинку (т.е. изменяется с z01.png на z01_pressed.png)
  • когда (например) пользователь переходит от img1 к img2, удерживая его, нажимается img2 (меняется его изображение с z02.png на z02_pressed.png) и img1 возвращается в свое состояние (к z01.png).

чтобы достичь этого, я написал это в onCreate методе:

    final ImageView img1 = (ImageView) findViewById(R.id.img1);
    final ImageView img2 = (ImageView) findViewById(R.id.img2);

    img1.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            img1.setBackgroundResource(R.drawable.z01_pressed);
            return false;
        }
    });
    img2.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            img2.setBackgroundResource(R.drawable.z01_pressed);
            return false;
        }
    });

Однако это не работает. Я что-то не так делаю?

Ответы [ 2 ]

0 голосов
/ 12 января 2012

Для тех, кому это может быть интересно:

Это можно сделать с помощью OnDragListener. Для этого нужна некоторая работа. Я отказался от этого, чтобы облегчить мне жизнь.

0 голосов
/ 03 июля 2011

Вы можете использовать кнопку и установить пользовательское изображение в качестве рисунка этой кнопки.Таким образом, вам не придется самостоятельно управлять нажатыми и несжатыми состояниями.Смотрите эту ссылку:

http://blog.androgames.net/40/custom-button-style-and-theme/

...