当前位置: 移动技术网 > IT编程>移动开发>Android > Android TextSwitcher文本切换器和ViewFlipper使用详解

Android TextSwitcher文本切换器和ViewFlipper使用详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

什么孕妇奶粉最好,东方网页王,否极泰来咫尺间

本文为大家分享了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,来看一下我们的效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网