怎么ViewFlipper的showPrevious与showNext的动画都是从右方推进,能不能修改?

ViewFlipper的showNext方法是从右边推进下一张图片替换当前图片,showPrevious显示上一张图片,但是动画效果也是从右边推进。正确的动画应该是回退,... ViewFlipper的showNext方法是从右边推进下一张图片替换当前图片,showPrevious显示上一张图片,但是动画效果也是从右边推进。正确的动画应该是回退,也就是从左边推进前一张图片。这个东西知道能不能设置,求解? 展开
 我来答
jinzanxia
2014-03-02
知道答主
回答量:2
采纳率:0%
帮助的人:4.7万
展开全部

可以自定义添加图片的进入方式,类似这样的代码

     */
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //点击屏幕,MotionEvent.ACTION_DOWN 为手指点击屏幕事件
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            //获取手指开始触点横坐标
            startX = event.getX();
            //手指抬起,结束滑屏
        } else if(event.getAction() == MotionEvent.ACTION_UP) {
            //获取手指抬起,结束点横坐标
            float endX = event.getX();
            //结束点横坐标大于起始点横坐标,说明手指是向右滑动
            if(endX - startX>3) {
             if(viewFlipper.getDisplayedChild()==0){}
             else{
                    //控件进入动画效果
                    viewFlipper.setInAnimation(enter_lefttoright);
                    //控件退出动画效果
                    viewFlipper.setOutAnimation(exit_lefttoright);
                    //显示下一页
                    viewFlipper.showNext(); 
             }
              
            //结束点横坐标小于起始点横坐标,说明手指是向左滑动
            } else if (startX - endX >3 ) {
             if(viewFlipper.getDisplayedChild()==1){}
             else{
                    viewFlipper.setInAnimation(enter_righttoleft);
                    viewFlipper.setOutAnimation(exit_righttoleft);
                   //显示前一页
                   viewFlipper.showPrevious();              
             }
            }
            return true;
        }
        return super.onTouchEvent(event);
    }
追问
我也想到了,就是每次鼠标位置改变都要重新设置动画效果,感觉不是很优雅。不知道官方提供的默认效果为什么是那样的,却置之不顾。View Pager是比较灵活,但却不支持循环拖动。目前没有找到一个完美的控件。你的方式也算解决了问题把,我就采纳了,谢谢你的热心回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式