4

Я хочу, чтобы слайд отменил анимацию, как whatsapp в моем приложении.Слайд для отмены анимации в Android

Во-первых, когда я удерживаю кнопку записи, она начнет запись. Эта часть работает хорошо.

Во-вторых, когда я перемещаю палец в обратном направлении к мусорному ведру, в то время как уже постучал, тогда «Текстовый слайд для отмены» должен скользить назад, и запись должна приостанавливаться. После определенного момента я буду выполнять мусор, чтобы открыть анимацию. Но если, если я сдвигаюсь вперёд, то текстовое представление должно быть установлено в исходное положение, и запись должна воспроизводиться снова.

Моя проблема: я не получаю никакой помощи, как точно показывать текст.

Я также получил помощь отсюда https://github.com/sarathnk/Audio, но я не смог добиться желаемого результата.

Это мой Java-код:

holdtoRecord = (ImageView) findViewById(R.id.hold); 
slider = (TextView) findViewById(R.id.slide); 

holdtoRecord.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        // start recording. 
        mVideoView.pause(); 
        onHold(); 

        return true; 

       } 

       if (event.getAction() == MotionEvent.ACTION_UP) { 
        // Stop recording and save file 


        mVideoView.start(); 
        offHold(); 

        return true; 
       } 


       if (event.getAction() == MotionEvent.ACTION_MOVE) { 


       } 

enter image description here

+0

я не хочу, чтобы дублировать ответы, вы можете проверить мою библиотеку в этом ответ [ссылка] https://stackoverflow.com/a/47876905/4130286 – 3llomi

ответ

3

Попробуйте этот код будет работать.

int xPos_terminal = 100; 
    int xPos_DragInitial = 0; 


hold.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 


       if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 
        // start recording. 

        xPos_DragInitial = (int) motionEvent.getX(); 
        xPos_SliderOriginal = (int) slider.getX(); 

        int xPos_Trash = (int) trash_cap.getX(); 

        Log.e("original", String.valueOf(xPos_Trash)); 
        return true; 

       } 

       if (motionEvent.getAction() == MotionEvent.ACTION_UP) { 
        return true; 

       } 



       if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) { 


        int xPos_current = (int) motionEvent.getX(); 


        //Handling of SlideToCancel View 
        String slideToViewMsg = ""; 
        if(xPos_current < xPos_DragInitial) 
        { 
         //LEFT DIRECTION 
         Log.e("----- LEFT DIRECTION --","S"); 
         if(xPos_SliderOriginal > (xPos_terminal)) 
         { 
          slideToViewMsg = "Animate SlideToCancel view to Reduce its X"; 
          lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
          int newXOfSlider = (int) slider.getX(); 
          newXOfSlider -= 2; 
          lp.setMargins(newXOfSlider, (int) slider.getY(), 0, 0); 
          slider.setLayoutParams(lp); 
         } 
         else 
         { 
          slideToViewMsg = "Donot Animate SlideToCancel view"; 
         } 
        } 
        else 
        { 
         //RIGHT DIRECTION 
         Log.e("---- RIGHT DIRECTION --","r"); 
         if((int)slider.getX() < xPos_SliderOriginal) 
         { 
          slideToViewMsg = "Animate SlideToCancel view to increase X"; 
          int newXOfSlider = (int) slider.getX(); 
          newXOfSlider += 2; 
          lp.setMargins(newXOfSlider, (int) slider.getY(), 0, 0); 
          slider.setLayoutParams(lp); 
         } 
         else 
         { 
          slideToViewMsg = "Donot Animate SlideToCancel View"; 
         } 
        } 

        Log.e("x",slideToViewMsg); 
        //Handling of Delet button 
        if (xPos_current < (xPos_terminal)) 
        { 
         //Animate Delete button to open 


        } 
        else 
        { 
         //Animate Delet Button To Close 

        } 

        //chnage xPosInitial to xPosCurrent to get actual direction 
        xPos_DragInitial = xPos_current; 
        return true; 

       } 

       return false; 
      } 
     }); 
    } 
+0

нормально Постараюсь that..thanks –

 Смежные вопросы

  • Нет связанных вопросов^_^