Android TextSwitcher文本切换器和ViewFlipper使用详解
本文为大家分享了android textswitcher文本切换器的使用,供大家参考,具体内容如下
1.textswitcher
使用:
应用分为三步:
1.得到 textswitcher 实例对象
textswitcher switcher = (textswitcher) findviewbyid(r.id.textswitcher);
2.为switcher指定viewswitcher.viewfactory工厂,该工厂会产生出转换时需要的view
switcher.setfactory(this);
3.为switcher设定显示的内容,该方法执行,就会切换到下个view
switcher.settext(string.valueof(new random().nextint()));
2.viewflipper
实现:
①创建主布局文件,包含viewflipper控件(从源码来看,viewflipper控件是集成framelayout,也是相当于一个帧布局,只是包含了一些特殊的属性)
②创建viewflipper的子view,就是两个linearlayout(里面包含两个textview)
③创建viewflipper中子view的进入和退出动画anim_in和anim_out两个动画文件
④在activity中将两个子view添加到viewflipper中去,调动的是viewflipper的addview方法
具体代码:
①创建主布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android" 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:fitssystemwindows="true" tools:context="com.qianmo.rollads.mainactivity"> <android.support.design.widget.appbarlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/apptheme.appbaroverlay"> <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionbarsize" android:background="?attr/colorprimary" app:popuptheme="@style/apptheme.popupoverlay"/> </android.support.design.widget.appbarlayout> <relativelayout android:id="@+id/content_main" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.qianmo.rollads.mainactivity" tools:showin="@layout/activity_main"> <viewflipper android:id="@+id/viewflipper" android:layout_width="match_parent" android:layout_height="wrap_content" android:autostart="true" android:background="#fff" android:flipinterval="3000" android:inanimation="@anim/anim_in" android:outanimation="@anim/anim_out" android:paddingleft="30dp" > </viewflipper> </relativelayout> <android.support.design.widget.floatingactionbutton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" app:srccompat="@android:drawable/ic_dialog_email"/> </android.support.design.widget.coordinatorlayout>
②创建viewflipper的子view,这里有两个,我就只给出一个来了,另一个是一样的
one_ads.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="8dp" > <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="热议" android:textcolor="#f14c00" android:textsize="12sp" android:background="@drawable/bg" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:padding="3dp" android:singleline="true" android:text="小米8问世,雷胖子现在笑的开心了啦!" android:textcolor="#333" android:textsize="16sp" /> </linearlayout> <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="热议" android:textcolor="#f14c00" android:textsize="12sp" android:background="@drawable/bg" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:padding="3dp" android:singleline="true" android:text="取了个漂亮的媳妇,整的是好开心!" android:textcolor="#333" android:textsize="16sp" /> </linearlayout> </linearlayout>
③创建viewflipper中子view的进入和退出动画anim_in和anim_out两个动画文件,这里也只给出anim_in的代码,anim_out代码是类似的
anim_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="1500" android:fromydelta="100%p" android:toydelta="0" /> </set>
④在activity中将两个子view添加到viewflipper中去,调动的是viewflipper的addview方法
mainactivity.java
package com.qianmo.rollads; import android.os.bundle; import android.support.design.widget.floatingactionbutton; import android.support.design.widget.snackbar; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.view.view; import android.view.menu; import android.view.menuitem; import android.widget.viewflipper; public class mainactivity extends appcompatactivity { private viewflipper viewflipper; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); viewflipper = (viewflipper) findviewbyid(r.id.viewflipper); setsupportactionbar(toolbar); floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.fab); fab.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { snackbar.make(view, "replace with your own action", snackbar.length_long) .setaction("action", null).show(); } }); viewflipper.addview(view.inflate(this, r.layout.one_ads, null)); viewflipper.addview(view.inflate(this, r.layout.two_ads, null)); } }
ok,来看一下我们的效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。