android - 在 viewflipper 中缩放图像

标签 android image viewflipper zooming

我使用 ViewFlipper 创建了一个图像幻灯片。 我用过 imageFrame.setOnTouchListener(gestureListener);监听用户触摸事件,如单击、长按

但现在我想放大/缩小幻灯片放映 (ViewFlipper) 中的当前图像,由用户双击。我已经在互联网上搜索了这个但找不到解决方案。请帮帮我。

最佳答案

有多种方法可以做到这一点,但一个简单的方法是使用平台的 ZoomControls widget ,这是一个由 +/- 按钮组成的简单小部件。您可以附加 onZoomInClickListeneronZoomOutClickListener 来处理 ZoomControls 小部件的触摸。

在您的处理程序中,您可以缩放图像。下面是一些使用 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);
    }
});

关于android - 在 viewflipper 中缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846914/

相关文章:

android - Marshmallow 升级后 appwidget listview 行未更新或加载

Android:AsyncTask ProgressDialog 不会在 ActivityGroup 中打开

javascript - 使用 javascript onclick 下拉菜单交换图像

android - Viewflipper 动画在第一次滑动时不起作用

android - MyFirebaseMessagingService 不工作但显示通知

java事件和监听器,一个类中的多个事件

perl - 是否有纯 Perl 模块来创建图像并在图像中放置文本?

c# - 如何清除 WriteableBitmap 的内存

Android Viewflipper,从未调用过 onConfigurationChanged 方法

android - 使用 ViewFlipper 切换 View