经常看到有些应用里面TextView会有淡入淡出效果,给人一种眼前一亮的感觉,如下图:

这篇文章简单介绍下它的代码实现。

首先,可以先将此动画分解成两部分,即淡入和淡出,淡入的时候,从底部向中心点移动,移动的过程中,文字越变越清晰;

淡出的时候,从中心点向顶部移动,移动过程中,文字越变越模糊。这其中涉及到两个属性:translationY(控件在纵向上的移动距离)、alpha(控件的不透明度)

本章将利用属性动画实现其效果。

首先,看淡出的实现:

privateObjectAnimator mFadeOutObjectAnimator;//由于淡出,是向上移动,坐标为负,这里设定向上移动150个像素

mFadeOutObjectAnimator = ObjectAnimator.ofFloat(mFadeinoutTv, "translationY", 0, -150);//动画执行时间设定为500毫秒

mFadeOutObjectAnimator.setDuration(500);

mFadeOutObjectAnimator.addUpdateListener(newValueAnimator.AnimatorUpdateListener() {

@Overridepublic voidonAnimationUpdate(ValueAnimator animation) {//当前动画时间点的动画值,在0到-150之间

float value = (float) animation.getAnimatedValue();//由于不透明度取值为0-1,故而除以150,value/150取值在-1到0之间

mFadeinoutTv.setAlpha(1 + value/150);

}

});

mFadeOutObjectAnimator.addListener(newAnimator.AnimatorListener() {

@Overridepublic voidonAnimationStart(Animator animation) {

}

@Overridepublic voidonAnimationEnd(Animator animation) {//动画执行完毕后修改TextView的值

mFadeinoutTv.setText("124");

}

@Overridepublic voidonAnimationCancel(Animator animation) {

}

@Overridepublic voidonAnimationRepeat(Animator animation) {

}

});

mFadeOutObjectAnimator.start();

以上代码大概意思为将TextView以一定规律向上从中心点向上移动150像素,同时将TextView的不透明度从1慢慢变到0,达到TextView淡出的效果。效果如下图:

我们再来看看淡入的实现:

privateObjectAnimator mFadeInObjectAnimator;//由于是淡入,从底部向中心点移动,移动距离为150像素

mFadeInObjectAnimator = ObjectAnimator.ofFloat(mFadeinoutTv, "translationY", 150, 0);//动画执行时间设置为500毫秒

mFadeInObjectAnimator.setDuration(500);//动画推迟100毫秒执行

mFadeInObjectAnimator.setStartDelay(100);

mFadeInObjectAnimator.addUpdateListener(newValueAnimator.AnimatorUpdateListener() {

@Overridepublic voidonAnimationUpdate(ValueAnimator animation) {//当前动画时间点的动画值

float value = (float) animation.getAnimatedValue();//动画值在150-0之间变化,而alpha在0-1之间变化,故而alue/150

mFadeinoutTv.setAlpha(1 - value/150);

}

});

mFadeInObjectAnimator.start();

以上代码大概意思为将TextView以一定规律从底部向中心点移动,同时将TextView的不透明度从0慢慢变到1,达到TextView淡入的效果。效果如下图:

好了,现在淡入、淡出两个动画都实现了,只要组合起来执行便可,如下代码:

//AnimatorSet是可以让几个动画组合在一起执行的类

privateAnimatorSet mAnimatorSet;

mAnimatorSet= newAnimatorSet();//先淡出再淡入

mAnimatorSet.play(mFadeOutObjectAnimator).before(mFadeInObjectAnimator);

mAnimatorSet.start();

效果图:

源码:

原文:http://www.cnblogs.com/tyrion/p/4337630.html

android textview 淡入淡出,TextView淡入淡出效果相关推荐

  1. JQuery中淡出和淡入动画效果

    开发工具与关键技术: MVC 班级:18级(4)班 撰写时间:2019.5.20 JQuery中淡出动画fadeOut让元素在页面不可见,常用的办法就是通过设置样式的display:none.除此之外 ...

  2. Android移动开发之【通往安卓的神奇之旅】TextView和ImageView 实现跑马灯效果

    文章目录 1 textview 1.1 介绍属性(全) 1.2 自带跑马灯代码 2 imageview 1 textview 1.1 介绍属性(全) android:autoLink设置是否当文本为U ...

  3. android直播聊天室图文混排效果,仿抖音直播聊天室换行内容TextView+ReplacementSpan...

    一.抖音聊天室文本,看似简单并非简单 抖音文本换行. 二.实现方案TextView + ReplacementSpan 方案思路 利用span原理,继承ReplacementSpan,自定义VIewS ...

  4. Android移动应用开发之TextView实现阴影跑马灯文字效果

    文章目录 前言 创建项目 配置文件简介 阴影走马灯文字 values/string.xml values/colors.xml layout/activity_main.xml 法2 main/jav ...

  5. Android 第五章 TextView

    android:id="@+id/xx"控件标识.标签.ID android:layout_margin="10dp" 子控件与父控件之间距离10dp andr ...

  6. Android中实现为TextView添加多个可点击的文本

    这篇文章主要介绍了Android中实现为TextView添加多个可点击的文本,可实现类似Android社交软件显示点赞用户并通过用户名称进入该用户主页的功能,是非常实用的技巧,需要的朋友可以参考下.具 ...

  7. 【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . TextView 相关类的继承结构 ...

  8. android 多个textview,Android:多个textview像单个文本

    需要格式化几个textview像一个又一个独特的文本块,有没有办法实现这个?Android:多个textview像单个文本 这样 __________________________ | | | | ...

  9. Android之——自己定义TextView

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47082241 在这一篇博文中,将向大家介绍怎样以最简单的方式,来自己定义Andro ...

  10. 简易实现 TextView单行文本水平触摸滑动效果

    为了方便查看,已使用markdown编辑形成新博文. 本文Mardown地址 近期做应用的时候实用到TextView单行长文本,当文本内容过长时候又想实现触摸水平滑动效果. 网上找了非常多,都没有看到 ...

最新文章

  1. [JS][dfs]题解 | #迷宫问题#
  2. 数字营销迎来黄金期 TalkingData推出“营销云”平台
  3. linux lddbus设备,Linux那些事儿之我是Sysfs(4)举例一lddbus | 技术部落
  4. python官方网站是-Python基础
  5. linux 下DHCP的安装
  6. LeetCode 2146. 价格范围内最高排名的 K 样物品(BFS)
  7. xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd报...
  8. 乒乓球十一分制比赛规则_乒乓球的基本比赛规则
  9. unity3d Android多渠道,Unity For Android多渠道SDK接入解决方案
  10. C++中时间相关函数的使用
  11. php web服务器部署,php – 如何配置apache web服务器以部署laravel 5
  12. CodeForces - 748C Santa Claus and Robot
  13. plc应用与c语言编程区别,PLC编程与应用入门基础知识
  14. 使用腾讯云服务器搭建自己网站应该怎么做
  15. 免费压缩视频大小最佳方法?
  16. Android Studio项目编码设置为GBK或UTF-8  中文乱码 和 Eclipse项目编码设置
  17. 软件测试价值观-SMBT新理念
  18. uni-app学习 form表单(五)
  19. linux用户行为日志审计方案(sudo)
  20. 怎么利用计算机教学,浅谈在课堂教学中如何应用信息技术

热门文章

  1. Linux du命令(du -h ,du -s)
  2. CRM软件的未来发展趋势
  3. 服务器主控芯片,物联网主控芯片6大架构分析 谁能独当一面
  4. 【MQTT学习】lesson8. :Retained 消息和 LWT
  5. [转]汽车ARM攒机指南
  6. 为何个税突然变多了?“税率跳档”了解一下
  7. 【数学史】大富翁的概率
  8. 张驰咨询:关于企业选择六西格玛绿带培训人员,你需要知道这些
  9. Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析
  10. Mac 和 Windows 共享一套鼠标键盘