多页面管理控件,可以实现页面自动播放的功能
静态引入:在layout文件中直接导入
动态导入:addView()方法
常用的方法
案例:
- 实现轮播
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewFlipper
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewfill"></ViewFlipper>
</LinearLayout>
java实现功能
public class FillActivity extends AppCompatActivity {
private ViewFlipper viewFlipper;
private int[]resId={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fillview);
viewFlipper=(ViewFlipper)findViewById(R.id.viewfill);
//动态导入方式为viewfill加view
for (int i=0;i<resId.length;i++){
viewFlipper.addView(getImageView(resId[i]));
}
//添加动画效果
viewFlipper.setInAnimation(this,R.anim.abc_fade_in);
viewFlipper.setOutAnimation(this,R.anim.abc_fade_out);
//设定视图切换的时间间隔
viewFlipper.setFlipInterval(3000);
//开始
viewFlipper.startFlipping();
}
private ImageView getImageView(int resId){
ImageView imageView=new ImageView(this);
imageView.setBackgroundResource(resId);
//imageView.setImageResource(resId);
return imageView;
}
}
*实现手势滑动
在Java实现的功能代码中写实现此方法
//手势滑动的处理
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
//手指已经落下
case MotionEvent.ACTION_DOWN:{
startX=event.getX();
break;
}
//手指来回滑动
case MotionEvent.ACTION_MOVE:{
//向右滑动event.getX()>startX
if (event.getX()- startX>100){
viewFlipper.setInAnimation(this,R.anim.left_in);
viewFlipper.setOutAnimation(this,R.anim.left_out);
viewFlipper.showPrevious();;//显示前一页
}
//向左滑动event.getX()<startX
if (startX-event.getX()>100){
viewFlipper.setInAnimation(this,R.anim.right_in);
viewFlipper.setOutAnimation(this,R.anim.right_out);
viewFlipper.showNext();//显示后一页
}
break;
}
//手指离开抬起
case MotionEvent.ACTION_UP:{
break;
}
}
return super.onTouchEvent(event);
}
以上就可以实现成功
需要其他资源就是四张图片
四个动画效果的文件(类似于这样写法)