当前位置: 首页 > news >正文

Android - 文字向上翻滚效果的实现

  今天看到了一种文字翻滚的效果,感觉非常实用。所以就自己试着做出了这种效果,现在把它分享给大家!

    

 

  首先在res目录下新建anim文件夹,再在其中分别新建push_up_in.xml和push_up_out.xml 两个文件,具体如下:

  push_up_in.xml  文字进入的效果 时长设置为0.5秒

<?xml version="1.0" encoding="utf-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android">
      <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="500"/>
      <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
  </set>

 

    push_up_out.xml  文字淡出的效果 设置动画时长 duration

     

<?xml version="1.0" encoding="utf-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android">
      <translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
  </set>

 

  如果要实现 文字的不停的向上翻滚的效果,那么这时我们可以使用使用到ViewFlipper,用它把我们希望显示的内容包裹起来。具体实现代码如下:

  main.xml

  

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical" >

      <TextView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="@string/hello" />
    
      <ViewFlipper 
          android:id="@+id/viewfli"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:background="#ffffff">
      </ViewFlipper>

  </LinearLayout>

 

  TextViewAmonActivity.java

  

package com.taoblog;

  import java.util.ArrayList;
  import java.util.List;

  import android.app.Activity;
  import android.os.Bundle;
  import android.widget.TextView;
  import android.widget.ViewFlipper;

  /** 
   * @Description:TODO 实现文字的上下翻滚的效果 
   */ 

  public class TextViewAmonActivity extends Activity {
      private ViewFlipper viewfli;
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
        
          init(); 
        
      }
    
      /**
       * @Description: 对UI进行初始化操作
       */
     private void init()
     {
        viewfli = (ViewFlipper) super.findViewById(R.id.viewfli);
        
        // 为ViewFlipper设置内容
        List<TextView> list = this.getData();
        int size = list.size();
        for(int i = 0; i < size; i++)
        {
            viewfli.addView(list.get(i));
        }
        
        // 设置文字in/out的动画效果
        viewfli.setInAnimation(this, R.anim.push_up_in);
        viewfli.setOutAnimation(this, R.anim.push_up_out);
        viewfli.startFlipping();
    }
    
    /**
     * @Description: 要显示的文字信息
     * <p> 在实际开发中,此方法可为对服务器返回数据的解析操作 </p>
     * @return list
     */
    private List<TextView> getData()
    {
        List<TextView> list = new ArrayList<TextView>();
        
        for(int i = 0; i < 5; i++)
        {
            TextView tv = (TextView) new TextView(this);
            tv.setText("这是测试用的第 "+i+" 行测试数据:");
            list.add(tv);
        }
        
        return list;
    }
}

 

  至此,功能全部实现!

转载于:https://www.cnblogs.com/TaoBlog/archive/2013/01/10/2855023.html

相关文章:

  • 大叔也学Xamarin系列
  • 从 相机 或者相册 获取图片显示在ImageView 上
  • 十年未变!安全,谁之责?(下)
  • linux的strace命令
  • 《锋利的jQuery》第1-3章
  • Python 远程操作文本转换excel
  • wp7 给TextBox设置圆角边框
  • 昨天使用 [wget] 把 [vbird鸟哥] 的整个博客网站数据下了下来
  • jQuery中$.fn的用法示例介绍
  • 详解dbms_stats.gather_fixed_objects_stats
  • 【转】Objective-C消息机制的原理
  • ASP.NET MVC URL Routing 学习
  • Unsupported repository,resources names are not uri
  • POJ-3034 Whac-a-Mole 动态规划
  • Android客户端采用Http 协议Post方式请求与服务端进行数据交互
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • JavaScript HTML DOM
  • php ci框架整合银盛支付
  • redis学习笔记(三):列表、集合、有序集合
  • SQL 难点解决:记录的引用
  • 思考 CSS 架构
  • 通过调用文摘列表API获取文摘
  • ​香农与信息论三大定律
  • (¥1011)-(一千零一拾一元整)输出
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (rabbitmq的高级特性)消息可靠性
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (过滤器)Filter和(监听器)listener
  • (六)软件测试分工
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (生成器)yield与(迭代器)generator
  • (转)重识new
  • (转载)利用webkit抓取动态网页和链接
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .Net 垃圾回收机制原理(二)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .netcore 获取appsettings
  • .net中我喜欢的两种验证码
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • ::before和::after 常见的用法
  • @RequestBody与@ResponseBody的使用
  • @Service注解让spring找到你的Service bean
  • @TableLogic注解说明,以及对增删改查的影响
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [20150707]外部表与rowid.txt
  • [acm算法学习] 后缀数组SA
  • [CF226E]Noble Knight's Path
  • [codevs 1515]跳 【解题报告】
  • [HXPCTF 2021]includer‘s revenge