2012-03-23 14 views
1

ViewFlipperを使用して画像スライドショーを作成しました。 私はimageFrame.setOnTouchListener(gestureListener)を使用しています。ワンタップ、ロングタップなどのユーザタッチイベントを聴くためにviewflipperのズーム画像

しかし、現在、私はスライドショー(ViewFlipper)で現在の画像を拡大/縮小したいと考えています。ユーザーはダブルタップでこれを検索しましたが、解決策を見つけてください。私を助けてください。

+0

ダブルタップを検出したり、ビューをズームしたりするとき、どの部分が問題を引き起こしていますか?基本的にview.Itsズーム –

+0

は、ユーザーがスライドショーを見ているされており、彼が見ている画像をズームすることしたいならば、彼は – kapil

答えて

2

これにはいくつかの方法がありますが、単純な方法として+/-ボタンで構成された簡単なウィジェットのプラットフォームZoomControls widgetを使用する方法があります。 ZoomControlsウィジェットへのタッチを処理するためにonZoomInClickListeneronZoomOutClickListenerを添付することができます。あなたのハンドラで

、あなたの画像を拡大縮小することができます。ズームを行うためにScaleAnimationを使用するサンプルコードを次に示します。

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

おかげで、私はviewflipperからImageViewのを得ることができる方法cooley.Butスライドショーを実行するには、そのイメージにdoubletappingによってそうすることができるようすることができます。 – kapil

+0

ViewFlipperでビューを配置しているため、参照をどこかに置く必要があります。 –

+0

あなたの役に立つスニペットをありがとう.. :) – Venky

関連する問題