Android 使用特定手机的TouchImageView进行奇怪的缩放行为

Android 使用特定手机的TouchImageView进行奇怪的缩放行为,android,android-viewpager,android-pageradapter,touchimageview,android-pagetransformer,Android,Android Viewpager,Android Pageradapter,Touchimageview,Android Pagetransformer,不确定这里发生了什么,但我已经在ViewPager的图像库上实现了缩放功能,ImagePagerAdapter使用TouchImageView。在我所有的其他手机和平板电脑上,这段代码工作得非常完美,可以进行缩放和翻页。在我们的3个摩托罗拉RAZR上,第一张图片上的缩放动作很滑稽。我的意思是,当你尝试缩放图片时,图片1上什么也没发生。但是如果平移到下一个图像,则从图像1进行缩放会影响图像2。如果翻转回图像1,它仍然不会缩放。如果平移到图像#3,然后返回到#1,则第一个图像的缩放效果会很好。不知道

不确定这里发生了什么,但我已经在ViewPager的图像库上实现了缩放功能,ImagePagerAdapter使用TouchImageView。在我所有的其他手机和平板电脑上,这段代码工作得非常完美,可以进行缩放和翻页。在我们的3个摩托罗拉RAZR上,第一张图片上的缩放动作很滑稽。我的意思是,当你尝试缩放图片时,图片1上什么也没发生。但是如果平移到下一个图像,则从图像1进行缩放会影响图像2。如果翻转回图像1,它仍然不会缩放。如果平移到图像#3,然后返回到#1,则第一个图像的缩放效果会很好。不知道如何解决这个问题,甚至不知道如何调试它。我从API中的示例中添加了自定义动画DepthPageTransformer。这是罪魁祸首,但不确定代码中的什么导致了这种行为

import android.annotation.SuppressLint;
import android.support.v4.view.ViewPager.PageTransformer;
import android.view.View;

public class DepthPageTransformer implements PageTransformer {
    private static final float MIN_SCALE = 0.55f;

    // suppress compiler warning...lower Api use standard slide in but 
    // APIs higher than 10 will use the transform page function
    @SuppressLint("NewApi") 
    public void transformPage(View view, float position) {
        int pageWidth = view.getWidth();

        if (position < -1) { // [-Infinity,-1)
            // This page is way off-screen to the left.
            view.setAlpha(0);

        } else if (position <= 0) { // [-1,0]
            // Use the default slide transition when moving to the left page
            view.setAlpha(1);
            view.setTranslationX(0);
            view.setScaleX(1);
            view.setScaleY(1);

        } else if (position <= 1) { // (0,1]
            // Fade the page out.
            view.setAlpha(1 - position);

            // Counteract the default slide transition
            view.setTranslationX(pageWidth * -position);

            // Scale the page down (between MIN_SCALE and 1)
            float scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position));
            view.setScaleX(scaleFactor);
            view.setScaleY(scaleFactor);

        } else { // (1,+Infinity]
            // This page is way off-screen to the right.
            view.setAlpha(0);
        }
    }
}
导入android.annotation.SuppressLint;
导入android.support.v4.view.ViewPager.PageTransformer;
导入android.view.view;
公共类DepthPageTransformer实现PageTransformer{
专用静态最终浮动最小刻度=0.55f;
//抑制编译器警告…较低的Api使用标准滑入,但
//高于10的API将使用转换页面功能
@SuppressLint(“新API”)
公共页面(视图、浮动位置){
int pageWidth=view.getWidth();
if(位置<-1){/[-无穷大,-1)
//这个页面在屏幕的左边。
视图。setAlpha(0);

}否则,如果(位置显然是动画导致了这种奇怪的行为。不知道为什么,但直到我弄清楚,我必须删除这个动画的设置

galleryViewPager.setClickable(true);
//galleryViewPager.setAnimation(new DepthPageTransformer());
galleryViewPager.setOnClickListener(new OnClickListener() {...
现在fling动画正在使用标准。这一定是Motorola Razr实现适配器fling动画的方式,它扰乱了侦听器顺序