当前位置: 移动技术网 > IT编程>移动开发>Android > Android基于ViewFilpper实现文字LED显示效果示例

Android基于ViewFilpper实现文字LED显示效果示例

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

38384列车,丹阳二手房,刘华清简历

本文实例讲述了android基于viewfilpper实现文字led显示效果。分享给大家供大家参考,具体如下:

这里给出来自android官方api demo中动画效果实例。

/**
 * flipperview文字效果动画之:文字滚动动画
 *
 * @description:
 * @author ldm
 * @date 2016-5-17 上午9:58:26
 */
public class animation2 extends activity implements
    adapterview.onitemselectedlistener {
  // spinner数据源
  private string[] mstrings = { "push up", "push left", "cross fade",
      "hyperspace" };
  // 控件viewflipper
  private viewflipper mflipper;
  @override
  public void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.animation_2);
    // 初始化ui控件
    initviews();
  }
  private void initviews() {
    mflipper = ((viewflipper) this.findviewbyid(r.id.flipper));
    mflipper.startflipping();
    spinner s = (spinner) findviewbyid(r.id.spinner);
    arrayadapter<string> adapter = new arrayadapter<string>(this,
        android.r.layout.simple_spinner_item, mstrings);
    // 定义spinner下拉菜单模式
    adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);
    // 设置数据
    s.setadapter(adapter);
    // 添加监听
    s.setonitemselectedlistener(this);
  }
  /**
   * spinner的item选择监听事件处理
   */
  @override
  public void onitemselected(adapterview<?> parent, view v, int position,
      long id) {
    switch (position) {
    case 0:// 文字从下进入,从上移出,伴随透明度变化
      mflipper.setinanimation(animationutils.loadanimation(this,
          r.anim.push_up_in));
      mflipper.setoutanimation(animationutils.loadanimation(this,
          r.anim.push_up_out));
      break;
    case 1:// 文字从右侧向左进入,从右侧移出,伴随透明度变化
      mflipper.setinanimation(animationutils.loadanimation(this,
          r.anim.push_left_in));
      mflipper.setoutanimation(animationutils.loadanimation(this,
          r.anim.push_left_out));
      break;
    case 2:// 文字透明度改变,从0-1-0
      mflipper.setinanimation(animationutils.loadanimation(this,
          android.r.anim.fade_in));
      mflipper.setoutanimation(animationutils.loadanimation(this,
          android.r.anim.fade_out));
      break;
    default:// 多维空间动画(复合动画效果)
      mflipper.setinanimation(animationutils.loadanimation(this,
          r.anim.hyperspace_in));
      mflipper.setoutanimation(animationutils.loadanimation(this,
          r.anim.hyperspace_out));
      break;
    }
  }
  @override
  public void onnothingselected(adapterview<?> parent) {
    // todo auto-generated method stub
    // do nothing
  }
}

布局文件,textview中添加自己想显示的文字

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:padding="10dip" >
  <viewflipper
    android:id="@+id/flipper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginbottom="20dip"
    android:flipinterval="2000" >
    <textview
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:text="@string/animation_2_text_1"
      android:textsize="26sp" />
    <textview
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:text="@string/animation_2_text_2"
      android:textsize="26sp" />
    <textview
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:text="@string/animation_2_text_3"
      android:textsize="26sp" />
    <textview
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:text="@string/animation_2_text_4"
      android:textsize="26sp" />
  </viewflipper>
  <textview
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginbottom="5dip"
    android:text="@string/animation_2_instructions" />
  <spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</linearlayout>

动画文件res/anim文件夹下

1. push_up_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="300"<!--动画时长-->
    android:fromydelta="100%p"<!--y方向初始位置-->
    android:toydelta="0" /><!--y方向动画结束位置-->
  <alpha
    android:duration="300"
    android:fromalpha="0.0"<!--初始透明度-->
    android:toalpha="1.0" /><!--动画结束时透明度-->
</set>

2. push_up_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="300"
    android:fromydelta="0"
    android:toydelta="-100%p" />
  <alpha
    android:duration="300"
    android:fromalpha="1.0"
    android:toalpha="0.0" />
</set>

3. push_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="300"
    android:fromxdelta="100%p"
    android:toxdelta="0" />
  <alpha
    android:duration="300"
    android:fromalpha="0.0"
    android:toalpha="1.0" />
</set>

4. push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="300"
    android:fromxdelta="0"
    android:toxdelta="-100%p" />
  <alpha
    android:duration="300"
    android:fromalpha="1.0"
    android:toalpha="0.0" />
</set>

5. fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
  android:duration="@android:integer/config_longanimtime"
  android:fromalpha="0.0"
  android:interpolator="@interpolator/decelerate_quad"
  android:toalpha="1.0" />

6. fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
  android:duration="@android:integer/config_mediumanimtime"
  android:fromalpha="1.0"
  android:interpolator="@interpolator/accelerate_quad"<!--设置动画插值器-->
  android:toalpha="0.0" />

7. hyperspace_in.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
  android:duration="300"
  android:fromalpha="0.0"
  android:startoffset="1200"<!--设置启动时间-->
  android:toalpha="1.0" />

8. hyperspace_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
  android:shareinterpolator="false" >
  <scale
    android:duration="700"
    android:fillafter="false"<!--动画结束画面是否停留在最后一帧-->
    android:fillenabled="true"<!--使能填充效果-->
    android:fromxscale="1.0"<!--x方向起始缩放值-->
    android:fromyscale="1.0"<!--y方向起始缩放值-->
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:pivotx="50%"<!--动画相对于物件的x、y坐标的开始位置-->
    android:pivoty="50%"
    android:toxscale="1.4"
    android:toyscale="0.6" />
  <set android:interpolator="@android:anim/accelerate_interpolator" >
    <scale<!--缩放动画-->
      android:duration="400"
      android:fillafter="true"
      android:fillbefore="false"
      android:fillenabled="true"
      android:fromxscale="1.4"
      android:fromyscale="0.6"
      android:pivotx="50%"
      android:pivoty="50%"
      android:startoffset="700"
      android:toxscale="0.0"
      android:toyscale="0.0" />
    <rotate<!--旋转动画-->
      android:duration="400"
      android:fillafter="true"
      android:fillbefore="false"
      android:fillenabled="true"
      android:fromdegrees="0"
      android:pivotx="50%"
      android:pivoty="50%"
      android:startoffset="700"
      android:todegrees="-45"
      android:toyscale="0.0" />
  </set>
</set>

附开源代码:https://github.com/ldm520/android_api_demos

更多关于android相关内容感兴趣的读者可查看本站专题:《android开发动画技巧汇总》、《android开发入门与进阶教程》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android文件操作技巧汇总》、《android资源操作技巧汇总》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。

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

相关文章:

验证码:
移动技术网