【问题标题】:How to implement Facebook App like image Zoom-In/ Zoom-Out?如何实现 Facebook App 之类的图片放大/缩小?
【发布时间】:2014-11-17 14:42:52
【问题描述】:

我已经尝试了很多来实现这种效果。 this link

我已经在列表视图中成功实现了视图分页器。但现在我想像 Facebook 应用一样对图像点击应用放大缩小效果。

是否有任何库或技术来实现这种效果?

【问题讨论】:

    标签: android facebook android-layout android-viewpager android-animation


    【解决方案1】:

    您会惊讶地看到默认的 android 文档提供了完整的指南和示例,请点击 hereHere

    【讨论】:

    • 谢谢。它适用于 imageview。我会尝试用 viewpager 来实现它。
    • 如果可以,请接受答案。
    【解决方案2】:

    您可以使用以下代码。

    ViewPager imageGalleryPager = (ViewPager) productImageView.findViewById((R.id.pager));
    imageGalleryPager.setPageTransformer(true, new ZoomOutPageTransformer());
    
    
    public class ZoomOutPageTransformer implements PageTransformer {
    private static final float MIN_SCALE = 0.85f;
    
    private static final float MIN_ALPHA = 0.5f;
    
    @Override
    public void transformPage(View view,
            float position) {
        int pageWidth = view.getWidth();
        int pageHeight = view.getHeight();
    
        if (position < -1) { // [-Infinity,-1)
            // This page is way off-screen to the left.
            view.setAlpha(0);
    
        } else if (position <= 1) { // [-1,1]
            // Modify the default slide transition to shrink the page as well
            float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
            float vertMargin = pageHeight * (1 - scaleFactor) / 2;
            float horzMargin = pageWidth * (1 - scaleFactor) / 2;
            if (position < 0) {
                view.setTranslationX(horzMargin - vertMargin / 2);
            } else {
                view.setTranslationX(-horzMargin + vertMargin / 2);
            }
    
            // Scale the page down (between MIN_SCALE and 1)
            view.setScaleX(scaleFactor);
            view.setScaleY(scaleFactor);
    
            // Fade the page relative to its size.
            view.setAlpha(MIN_ALPHA + (scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA));
    
        } else { // (1,+Infinity]
            // This page is way off-screen to the right.
            view.setAlpha(0);
        }
    }
    }
    

    Reference

    【讨论】:

    • 感谢您的回答,但这不是我想要的效果。我想要的是“在图像点击时,它应该从中心裁剪扩展以填充父级缩小动画。”
    猜你喜欢
    • 2011-09-06
    • 2021-12-20
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多