首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查看Flipper Android

查看Flipper Android
EN

Stack Overflow用户
提问于 2012-06-22 19:48:49
回答 3查看 2.7K关注 0票数 0

我有几个图像动画在flipper中,当下一个按钮被按下下一个图像应该来自右侧和当前图像应该从左侧出去,类似地,如果后退被按下前一个应该来自右侧和当前图像应该出去。我想在动画中左进右出,左出右出,也要记住堆的大小,有没有人有解决方案?我使用了下面的代码

代码语言:javascript
复制
 nbtn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        if (current_shown_index < list.length - 1) {
            current_shown_index++;           
            bkbtn.setVisibility(View.VISIBLE);
            View view = inflater.inflate(R.layout.view_flipper_item, null);
            ImageView iv = (ImageView) view.findViewById(R.id.iv_flipper_item);                 
            iv.setImageResource(list[current_shown_index]);
            Log.v("count", vFlipper.getChildCount() + "flipper length");
            if (vFlipper.getChildCount() == 3) {                       
                vFlipper.removeViewAt(0);
            }
            vFlipper.addView(view);               
            vFlipper.setInAnimation(inFromRightAnimation());      
            vFlipper.setOutAnimation(outToLeftAnimation());
            vFlipper.showNext();
        }
    }
});
bkbtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {                
        if (current_shown_index > 0) {                  
            int diff = 2;
            if (vFlipper.getChildCount() == 3 ){          
                vFlipper.removeViewAt(2);                   
            }
            View viewb = inflater.inflate(R.layout.view_flipper_item, null);
            ImageView iv = (ImageView) viewb.findViewById(R.id.iv_flipper_item);
            if(current_shown_index == 1 ){
                diff = 1;
            }else{                     
                iv.setImageResource(list[current_shown_index-diff ]);
            }
            vFlipper.addView(viewb, 0);
            current_shown_index--;
        }else{                 
            bkbtn.setVisibility(View.GONE);
        }             
        vFlipper.setInAnimation(inFromLeftAnimation());        
        vFlipper.setOutAnimation(outToRightAnimation());
        vFlipper.showPrevious();
    }
});
EN

回答 3

Stack Overflow用户

发布于 2012-06-22 19:53:34

我会给你一个起始指针:

代码语言:javascript
复制
final Animation outToLeft = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right); 
final Animation inFromRight = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);

final Animation outToRight = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_left); 
final Animation inFromLeft = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_right);

现在将它们与ViewFlipper中的setInAnimationsetOutAnimation一起使用。

票数 0
EN

Stack Overflow用户

发布于 2012-06-22 19:53:55

为了在ViewFlipper中实现输入和输出动画,可以使用setInAnimation()setOutAnimation()方法。

为例:

代码语言:javascript
复制
  viewFlipper.setInAnimation(AnimationUtils.loadAnimation(
                            mContext, android.R.anim.slide_in_right));
    viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(
                            mContext, android.R.anim.slide_out_right));

   /* Where - mContext is Context object     
   */
票数 0
EN

Stack Overflow用户

发布于 2012-06-23 02:21:47

ViewSwitcher可以为您处理这一点,here视图切换器在行动中

您还可以在此处找到附带源代码的example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11155599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档