Менять значок и возвращаться в того же самого в onClick Android

я разрабатываю app android. Одно из изображений, это кнопка, что redirecciona в определенное задание. Мне хотелось бы, что, когда я реализую клик, из-за секунды, он сделал эффект, что нажат, и вернулся в Ваше нормальное состояние.

Я считаю уже готовым значок, не нажимая и нажатый.

В событии onclick изображения, если я это программирую так, нет проблемы:

ImageView imagen=(ImageView)findViewById(R.id.imgcorreo);


    imagen.setImageResource(R.drawable.correo2);

Вслед за этим, я хочу, чтобы он вернулся в предыдущее изображение, которое это:

R.drawable.correo2

Какая-то подсказка для того, чтобы он сделал все это?

Спасибо заранее.

1
задан 02.06.2016, 17:44
4 ответа

Так как тестируя cГіdigo я fijГ©, что ACTION_UP не был назван и encontrГ© она soluciГіn aquГ - https://stackoverflow.com / questions / 15799839/motionevent-action-up-not-called , с delvolver true estarГ - в решенный:

imagen.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                if (event.getAction() == MotionEvent.ACTION_DOWN){
                    imagen.setImageResource(R.drawable.correo2);
                }else if(event.getAction() == MotionEvent.ACTION_UP){
                    imagen.setImageResource(R.drawable.imagen_actual);
                }

                return true;
            }
        });

Это probГ© и функционируй в нее perfecciГіn, приветствие.

1
ответ дан 24.11.2019, 14:15
  • 1
    Спасибо, но оно не функционирует: ( – Sergio Cv 02.06.2016, 14:19
  • 2
    НЕОБЫКНОВЕННЫЙ!!! С TRUE БУДЬ СОВЕРШЕННЫМ!! БОЛЬШОЕ СПАСИБО ВСЕМ:) – Sergio Cv 03.06.2016, 09:10

Ты можешь использовать селектор:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/imagen_normal"/>
   <item android:drawable="@drawable/imagen_pulsada" android:state_pressed="true"/>
   <item android:drawable="@drawable/imagen_pulsada" android:state_hovered="true"/>
</selector>

Сохраняет этот файл в твоей папке drawable и asГ-gnaselo в твой вид.

Приветствие.

1
ответ дан 24.11.2019, 14:15
  • 1
    Извини мое неведение, но как он в и # 241; ado этот селектор в изображение? – Sergio Cv 02.06.2016, 14:21
  • 2
    Не беспокойся о том, что я объясняю это тебе. Ты должен сохранять этот файл в папке drawable (помести ему, что ты называешь как my_selector.xml). Despu и # 233; s ты распределяешь это ему в ImageView как будто это было нормальное изображение. В твоем случае: imagen.setImageResource (R.drawable.my_selector); – Puas 02.06.2016, 14:46
  • 3
    Спасибо! я это записываюсь то, что он оказывается очень интересным! – Sergio Cv 03.06.2016, 09:11

Существуют несколько выборов, если ты будешь определять новый значок, дав click в ImageView, ты можешь использовать OnTouchListener, и когда click в кнопку, он выполнит событие ACTION_DOWN , и меняешь значок, освободив botГіn, работает событие ACTION_UP и ты меняешься в начальный значок:

ImageView imagen=(ImageView)findViewById(R.id.imgcorreo); 
    imagen.setOnTouchListener(new OnTouchListener(){

                        public boolean onTouch(View v, MotionEvent event) {
                            switch(event.getAction())
                            {
                            case MotionEvent.ACTION_DOWN :
        imagen.setImageResource(R.drawable.correo2);
                                break;
                            case MotionEvent.ACTION_UP :
       imagen.setImageResource(R.drawable.imgcorreo);
                                break;
                            }
                            return true;
                        }

                    });

очень важно определять return true;

Другая opciГіn используя селектор .

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/correo2" android:android:state_pressed     ="true" />
    <item android:drawable="@drawable/correo2" android:android:state_selected     ="true" />
    <item android:drawable="@drawable/imgcorreo" android:state_selected="false" />
</selector>

ты определяешь этот .xml внутри папки res/drawable и это распределяешь как drawable в твоем ImageView.

важное знание, что, если ты определяешь drawable прямо в layout твоего ImageView, ты должен добавлять свойство

android:clickable="true"

пример:

<ImageView
        android:id="@+id/imgcorreo"
        android:clickable="true"
         ...
         ...
         ...
        android:src="@drawable/mi_selector"
</ImageView>

Обе формы стоились, чтобы мочь реализовывать что-то как это, дав click в botГіn, измени значок и в освобождать изменись в Ваше первоначальное изображение.

introducir la descripción de la imagen aquí

1
ответ дан 24.11.2019, 14:15
  • 1
    Я верю в то, что если мой ответ не функция и # 243; не будь также ^^. Приветствие – Fabio Venturi Pastor 02.06.2016, 14:40
  • 2
    Очевидно, что твой ответ не будет функционировать, если ты определяешь другое изображение, которое не существует, освободив кнопку =P. – Jorgesys♦ 02.06.2016, 14:43
  • 3
    #191; ты относишься в R.drawable.imagen_actual? ясно, что он не существует, который имеет меняться imagen_actual из-за изображения, которое он желает – Fabio Venturi Pastor 02.06.2016, 14:45
  • 4
    мы будем спрашивать, не быть должным и # 237; чтобы не иметь никакой проблемы, если он определяет правильный ресурс. =) – Jorgesys♦ 02.06.2016, 14:55
  • 5
    Hab и # 237; в который возвращать true и уже функционирует ^^. Сердечный привет Elenasys. – Fabio Venturi Pastor 02.06.2016, 15:01

у меня есть сомнение. Вместо которого говорилось о ImageView. Может применяться этот блок cГіdigo:

 imagen.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                if (event.getAction() == MotionEvent.ACTION_DOWN){
                    imagen.setImageResource(R.drawable.correo2);
                }else if(event.getAction() == MotionEvent.ACTION_UP){
                    imagen.setImageResource(R.drawable.imagen_actual);
                }

                return true;
            }
        });

в плавающую кнопку?

0
ответ дан 24.11.2019, 14:15

Теги

Похожие вопросы