想写一个应用,展示方式像切换屏幕那样的,不知道效果名称叫什么?
有没有什么自带的对象可以实现这种效果?

解决方案 »

  1.   

    好像没有,不过你可以用ViewFlipper来实现比如ViewFlipper里面放几个View,然后可以类似桌面那样来回切换,还可以定义动画的方式。。
      

  2.   

    桌面的效果切换,实质上就是几个view在做animation。具体的实现,可以采纳楼上的意见。
      

  3.   

    那过渡会不会很生硬?
    我想实现那种联合切换的,比如两个View之间的滚动是无缝的,用单独的View能实现?
      

  4.   

    楼主想要实现的效果是像launcher那样无缝的滑动,用viewfliper虽然可以实现,但是效果实在触发Flip事件后才播放动画
      

  5.   

    是,我是想用那种效果。像Gallery那样的。
    找了一天,使用GestureDetector可以实现触屏实现,但正如9#所说,只能在触发之后才会播放,没有办法让这个Frame根据手指的滑动而切换。
      

  6.   

    原来可以用ViewFlipper啊,是要触动就可以实现了,想了一天怎么实现了,原来用ViewFlipper,研究研究。如果楼主想实现根据手指滑动而切换,你可以研究Launcher里的Workspace.java
    重点可以研究SnapToScreen(),DispatchDraw()和OnTouchEvent()方法我做了个3D Cube的效果。就是通过修改Workspace.java实现的 现在尝试尝试看ViewFlipper怎样实现触动后自动播放
      

  7.   

    这些都在哪里可以找得到资料?
    Google了一下,没找到相关资料。
      

  8.   


    你好啊,请问一下,比如我有3个screen,然后我在Launcher的Workspace.java里面这样使用动画
    getChildAt(1).startAnimation(inAnimation)
    getChildAt(2).startAnimation(outAnimation)
    我想要的效果是一个出一个进,就是两页的动画都能看到,为什么直接这样用不行呢如果想实现看到两个View的动画应该怎么做呢?
      

  9.   


    Workspace这个没有用过我只在viewFlipper中实现过
    /***
     * 显示ViewFlipper容器里面的下一个View,并设置动画效果
     * @param direction
     */
    public void showNextView(int direction) {
    setFlipperAnimations(direction);
            super.showNext();
        }

    /***
     * 显示ViewFlipper容器里面的上一个View,并设置动画效果
     * @param direction
     */
    public void showPreviousView(int direction){
    setFlipperAnimations(direction);
            super.showPrevious();
    }

    /***
     * 设置动画效果
     * @param direction
     */
    private void setFlipperAnimations(int direction){
    if(direction == RIGHT_IN_ANIM) {
    this.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_left_in));
    this.setOutAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_left_out));
    }else if (direction == LEFT_IN_ANIM) {
    this.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_right_in));
    this.setOutAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_right_out));
    }else if (direction == UP_IN_ANIM) {
    this.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_up_in));
    this.setOutAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_up_out));
    }else if (direction == DOWN_IN_ANIM) {
    this.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_down_in));
    this.setOutAnimation(AnimationUtils.loadAnimation(mContext, R.anim.push_down_out));
    }
    }
    }
      

  10.   


    谢谢,你说的这个我也实现了,也用了,动画我也做好了,但是现在正在想怎样把Workspace中的screen放进去ViewFlipper然后来切换。
      

  11.   

    这个就是我现在实现方法,但问题是只能等手势结束之后才会切换。没有办法跟随手势切换。
    想实现的是能随手机切换View。
      

  12.   

    可以看Launcher app里面的代码是怎么实现这个效果的。
      

  13.   

    下载了Launcher,然后按照:http://gqdy365.javaeye.com/blog/737642 这里的方法修改错误。
    等到运行的时候出错,那篇文章也没有下文了,也不知道要怎么看,很杯具。
      

  14.   

    想随手势切换可以研究Workspace.java里面的OnTouchEvent()
    我把随手势切换做好了,但是手势结束后就直接跳到要切换的页去了,没有动画,随手势切换的时候有动画。
    你手势结束后的切换动画是用的 ViewFlipper吗 ? 加我MSN讨论讨论:[email protected]
      

  15.   

    已经找到运行的方法了。
    在AndroidManifest.xml里有一个android:shared项,删除掉就可以了。
      

  16.   

    你按照那个人的改了?然后把  share项去掉就可以了吗,怎么我这里还有很多报错运行不起来啊。
    方便的话把你可直接运行的Launcher发给我好吗?
    我email:  [email protected]
    谢谢
      

  17.   

    偶也是遇到了之歌问题,不知楼主解决了没有?ViewFlipper随手指移动而移动的效果。
      

  18.   

    通过 Motion_up,Motion_down,Motion_move,可以达到这个要求,但是出现了个问题,在手指触摸屏幕的时候,图片的上边缘跑到手指下面的位置(我是点的图片的中间),这个很奇怪。问题可能出现在Motion_move的时候,需要改变layout的位置,不知道怎么解决,哪位碰到了类似的情况,有木有什么解决办法?