Android ViewFlipper的详解
前言:
View Flipper,是ViewAnimator的子类,而ViewAnimator又是继承自FrameLayout,而FrameLayout就是平时基本上只显示一个子视图的布局,由于FrameLayout下不好确定子视图的位置,所以很多情况下子视图之前存在相互遮挡,这样就造成了很多时候我们基本上只要求FrameLayout显示一个子视图,然后通过某些控制来实现切换。正好,ViewFlipper帮我们实现了这个工作,我们需要做的就是,选择恰当的时机调用其恰当的方法即可
类结构
方法 | 意义 |
---|---|
startFlipping | 开始浏览 |
stopFlipping | 停止浏览 |
setFlipInterval | 设置View之间切换的时间间隔 |
getAccessibilityClassName | 获取类名称 |
isFlipping | 判断是否正在浏览 |
setAutoStart | 设置是否自动开始浏览 |
isAutoStart | 判断是否为自动开始浏览 |
基本使用
1. 动画定义
scalein.xml
<&#63;xml version="1.0" encoding="utf-8"&#63;>
scaleout.xml
<&#63;xml version="1.0" encoding="utf-8"&#63;>
2. 布局文件
activity_main.xml
<&#63;xml version="1.0" encoding="utf-8"&#63;><!--渐入动画 和 渐出动画定义-->
3. 左右滑动切换
public class MainActivity extends AppCompatActivity { private ViewFlipper viewFlipper = null; float PosX = 0, CurrentX = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setNavigationIcon(R.drawable.left); setSupportActionBar(toolbar);//设置ActionBar viewFlipper = (ViewFlipper) findViewById(R.id.vf); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: PosX = event.getX(); break; case MotionEvent.ACTION_MOVE: CurrentX = event.getX(); break; case MotionEvent.ACTION_UP: if (CurrentX - PosX > 25.0) {//向右滑动切换到上一页 viewFlipper.showPrevious(); } else if (CurrentX - PosX <-25.0) {//向左滑动,切换到下一页 viewFlipper.showNext(); } } return true; } }
实际效果
以上就是Android ViewFlipper的使用方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!