首先我们介绍一下ViewFlipper.ViewFlipper是android的原生控件.
其中有一些属性值:
setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
showNext: 调用该函数来显示FrameLayout里面的下一个View。
showPrevious: 调用该函数来显示FrameLayout里面的上一个View。
isFlipping: 用来判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping: 停止View切换
使用方法:
activity:
public class ViewFippActivity extends AppCompatActivity {
ViewFlipper viewFlipper = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewfipp);
initView();
}
private void initView() {
viewFlipper = (ViewFlipper) findViewById(R.id.viewflipper);
for(int i=0;i<3;i++){
View view = getLayoutInflater().inflate(R.layout.item_viewfipp,null);
viewFlipper.addView(view);
}
viewFlipper.setFlipInterval(1000);
viewFlipper.startFlipping();
}
}
activity_viewfipp.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
android:id="@+id/viewflipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:flipInterval="1000"
android:background="@drawable/shape_background_daf2ed_8"
android:inAnimation="@anim/bottom_in"
android:outAnimation="@anim/top_out"
android:persistentDrawingCache="animation">
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@null"
android:text="第一个" />
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@drawable/shape_background_d7b176_8"
android:text="第二个" />
item_viewfipp.xml
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@drawable/shape_gradient_ff5d79e8_ff39b8fa"
android:orientation="horizontal">
android:id="@+id/img"
android:layout_marginStart="8dp"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/image_home_bg1"/>
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="云数据库MongoDB版"
android:textSize="22sp"
android:layout_marginLeft="20dp"
android:layout_gravity="center"/>
top_out.xml
android:fromYDelta="0"
android:toYDelta="-60%p"
android:duration="500"/>
android:toAlpha="0"
android:duration="500"/>
bottom_in.xml
android:duration="500"
android:fromYDelta="60%p"
android:toYDelta="0" />
android:toAlpha="1"
android:duration="1000"
/>
left_out.xml
android:fromXDelta="100%p"
android:toXDelta="0%p"
android:duration="1000" />
right_in.xml
android:duration="1000"
android:fromXDelta="0%p"
android:toXDelta="-100%p" />
shape_background_d7b176_8.xml
android:shape="rectangle">