2016-11-22 4 views
2

Я разработки Android приложения, я использовал эту библиотекуКак анимировать масштабирование Android

barteksc: андроид-PDF-Viewer: 2.3.0

я должен реализовать простой анимация, это код, который я реализовал:

private void selectArea(){ 
    /* Stop movement, jump to page 2, disable all action on PDFView*/ 
    pdfView.stopFling(); 
    pdfView.jumpTo(2); 
    pdfView.setEnabled(false); 
    pdfView.zoomWithAnimation(0, 1500, (float) 1.95);  
} 


private void resetAnimation() { 
    pdfView.resetZoomWithAnimation(); 
} 

нужно выбрать определенную область, сбросить масштаб и снова выберите область, так что проблема:

Когда я вызываю функцию selectarea(), показывает область, которую я хочу показать, когда она выполняет сброс вызова(), зум восстанавливается, если я снова вызываю функцию selectarea, вызов pdfView.resetZoomWithAnimation() игнорируется, и я не делаю Не понимаю почему.

Pseudocode моего приложения.

selectArea(); 
//do stuff 
resetAnimation() 
selectArea(); 
+0

пожалуйста, напишите Ваше решение в ответ и удалить его из вопрос –

ответ

1

**** РЕШЕНИЕ ****

После нескольких часов попыток я нашел решение моей проблемы:

private void selectAreaToSign(){ 
    /* Stop movement, jump to page 2, disable all action on PDFView*/ 
    pdfView.stopFling(); 
    pdfView.clearFocus(); 
    pdfView.jumpTo(2); 
    pdfView.setEnabled(false); 
    pdfView.clearAnimation(); 
    pdfView.clearFocus(); 

    if(isFirstTime){ 
     pdfView.zoomWithAnimation(0, 1700, (float) 2.00); 
    }else{ 
     resetAnimation(); 

     Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       sv.setVisibility(View.VISIBLE); 
       pdfView.zoomWithAnimation(4500, 1700, (float) 2.00); 
      } 
     }, 1000); 
    } 
} 

private void resetAnimation() { 
    pdfView.resetZoomWithAnimation(); 
    sv.setVisibility(View.INVISIBLE); 
    pdfView.zoomTo(1); 
}