zooming image in viewflipper

前端 未结 1 2107
甜味超标
甜味超标 2020-12-18 16:35

I have created a image slideshow using ViewFlipper. I have used imageFrame.setOnTouchListener(gestureListener); to listen user touch events like single tap,long tap

相关标签:
1条回答
  • 2020-12-18 17:14

    There are a number of ways you can do this, but a simple way is to use the platform's ZoomControls widget, which is a simple widget consisting of a +/- button. You can attach onZoomInClickListener and an onZoomOutClickListener to handle touches to the ZoomControls widget.

    In your handler, you can scale your image. Here's some sample code that uses a ScaleAnimation to do the zooming:

    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 讨论(0)
提交回复
热议问题