欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-01-03 08:21:04
本文为大家分享了android textswitcher文本切换器的使用,供大家参考,具体内容如下 1.textswitcher  使用: 应用分为三步...

本文为大家分享了android textswitcher文本切换器的使用,供大家参考,具体内容如下

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

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()));

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

2.viewflipper

Android TextSwitcher文本切换器和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,来看一下我们的效果

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

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