2012-03-23 2 views
1

Я создал слайд-шоу изображений с помощью ViewFlipper. Я использовал imageFrame.setOnTouchListener (gestureListener); для прослушивания пользовательских событий касания, например, одного крана, длинного кранамасштабирование изображения в viewflipper

Но теперь я хочу увеличить/уменьшить текущее изображение в слайд-шоу (ViewFlipper), в doubletap пользователем. Я искал интернет для этого, но не смог найти решение. Пожалуйста, помогите мне.

+0

Какая часть дает вам проблемы - обнаружение двойного касания или увеличение масштаба? –

+0

масштабирование представления. В основном пользователь просматривает слайд-шоу, и если изображение, которое он просматривает, хочет быть увеличенным, он может сделать это путем двойного касания на этом изображении при запуске слайд-шоу – kapil

ответ

2

Существует несколько способов сделать это, но простым способом является использование ZoomControls widget платформы, которая представляет собой простой виджет, состоящий из кнопки +/-. Вы можете прикрепить onZoomInClickListener и onZoomOutClickListener, чтобы обрабатывать штрихи к виджету ZoomControls.

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

iv = (ImageView) findViewById(R.id.imageview); 
zc = (ZoomControls) findViewById(R.id.zoom_controls); 
zc.setOnZoomInClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     float oldZoom = currentZoom; 
     currentZoom = currentZoom * 1.25; 
     zc.setIsZoomOutEnabled(true); 
     if (3.0 < currentZoom) { 
      zc.setIsZoomInEnabled(false); 
     } 
     scaleAnim = new ScaleAnimation(oldZoom, currentZoom, oldZoom, currentZoom, 0, 0); 
     scaleAnim.setFillAfter(true); 
     iv.startAnimation(scaleAnim); 
    } 
}); 
zc.setOnZoomOutClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     float oldZoom = currentZoom; 
     currentZoom = currentZoom/1.25; 
     zc.setIsZoomInEnabled(true); 
     if (0.33 > currentZoom) { 
      zc.setIsZoomOutEnabled(false); 
     } 
     scaleAnim = new ScaleAnimation(oldZoom, currentZoom, oldZoom, currentZoom, 0, 0); 
     scaleAnim.setFillAfter(true); 
     iv.startAnimation(scaleAnim); 
    } 
}); 
+0

Спасибо cooley. Но как я могу получить изображение из viewflipper. – kapil

+0

Вы помещаете View в ViewFlipper, так что вы должны иметь ссылку на него где-то. –

+0

Спасибо за ваш полезный снипп .. :) – Venky

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