Android电视关闭的闪屏动画效果

老式电视机关闭的时候画面一闪消失的那个效果: 

 

 

首先创建一个TVOffAnimation继承于Animation: 

首先创建一个TVOffAnimation继承于Animation

然后在initialize里面设置一些参数
import android.graphics.Matrix;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.Transformation;

public class TVOffAnimation extends Animation {

private int halfWidth;
private int halfHeight;

@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {

super.initialize(width, height, parentWidth, parentHeight);
setDuration(500);
setFillAfter(true);
//保存View的中心点
halfWidth = width / 2;
halfHeight = height / 2;
setInterpolator(new AccelerateDecelerateInterpolator());

}

@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {

final Matrix matrix = t.getMatrix();
if (interpolatedTime < 0.8) {
matrix.preScale(1+0.625f*interpolatedTime, 1-interpolatedTime/0.8f+0.01f,halfWidth,halfHeight);
}else{
matrix.preScale(7.5f*(1-interpolatedTime),0.01f,halfWidth,halfHeight);
}
}
}


说明一下做法:

 

其中setInterpolator(new AccelerateDecelerateInterpolator())选择一个先加速后减速的效果

最后动画的部分里面

 

interpolatedTime表示的是当前动画的间隔时间 范围是0-1

那么横向来讲前80%的时间我们要横向拉伸到150%,纵向是直接减小,最后只留一条线。
后20%的时间里我们要横向从150%压缩至0%,纵向保持不变就好了,当横向为0的时候就全部消失了。
可能大家对于1+0.625f*interpolatedTime, 1-interpolatedTime/0.8f+0.01f,7.5f*(1-interpolatedTime),0.01f 这4个值比较疑惑,其实很简单,这是一个一次函数的函数值
如图为sx的变化曲线
然后在activity中直接可以用了 :
View img = findViewById(R.id.imageView);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
img.startAnimation(new TVOffAnimation());
}
});

/Files/mudoot/TVOffDemo.rar 

 

转自:http://www.cnblogs.com/mudoot/articles/1985142.html

转载于:https://www.cnblogs.com/shanzei/archive/2012/03/24/2415664.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SocketServer源码学习(二)

SocketServer 中非常重要的两个基类就是&#xff1a;BaseServer 和 BaseRequestHandler在SocketServer 中也提供了对TCP以及UDP的高级封装&#xff0c;这次我们主要通过分析关于TCP的处理逻辑来对SocketServer模块进行一个很好的理解和学习 TCPServer TCPServer 继承了BaseServ…

430f149有几种封装类型_高速光调制器的发展与封装技术研究

共读好书汪冰 黄平 杨磊摘 要&#xff1a;文章分析了100 Gbps(以下简称100 G)以太网光通信光调制器及其封装的技术发展动向&#xff0c;对比分析了10 G/40 G/100 G高速光调制器及其封装的结构特点。通过对高速光调制原理的浅析&#xff0c;论述了40 G/100 G高速光调制器在100 …

vsftp账号_Linux入门-CentOS7安装vsftp

前言vsftpd是用于类Unix系统(包括Linux)的FTP服务器。那怎么搭建呢&#xff1f;请看下文在CentOS7 64位进行安装。为了调试顺利&#xff0c;关闭selinux&#xff0c;防火墙iptables一.yum安装vsftp# yum -y install vsftpd二.启动服务# systemctl start vsftpd.service三.配置文…

android n模拟器,BlueStacks推出Android N模拟器

原标题&#xff1a;BlueStacks推出Android N模拟器IT之家1月23日消息&#xff0c;相信有不少玩家都有过在电脑上玩手游的经历&#xff0c;打怪升级这类游戏在操作似乎还是交给键盘和鼠标比较高效&#xff0c;电脑端体验安卓游戏自然就要用到模拟器了&#xff0c;但是尴尬的是似…

为UIKeyboardTypeNumberPad增加自定义按键

在 iPhone 上面開發應用程式時, 在使用輸入鍵盤時, 或多或少都會遇到客制化鍵盤的問題, 這邊筆者以簡單的數字鍵盤來示範客制化的動作. 這部份我想網路上已經有不少 sample code , 但大部份基本上都是以 SDK 3.x 的版本去實作, 以"特定寫法"來實作客制化在 iOS4 會有…

车载安卓中控改鸿蒙,教你改装车子中控安卓大屏,看一遍你就会了,改完后低配秒变高配...

因为我这个车子年代比较久了&#xff0c;所以没有中控大屏&#xff0c;需要导航的时候我都是把手机放在出风口支架这个地方&#xff0c;这种磁吸的支架有时候过减速杠一震动就掉下来了&#xff0c;我又不想在上面粘什么东西&#xff0c;所以干脆就花几百块钱买了一个能够插手机…

pip 删除安装包_Python中PIP的快速指南

无论您是Python新手还是有经验的Python开发人员&#xff0c;不使用pip安装命令是不可能编写或开发Python应用程序的。在这篇文章中&#xff0c;我将对Pip进行详细介绍。Pip是Python Package Manager的缩写。当您在系统上安装python时&#xff0c;它附带了一组预定义的包&#x…

元素不包括_干货 | FDA法规对元素杂质的限度控制及计算方法

元素杂质又称重金属&#xff0c;重金属原义指比重大于5的金属&#xff0c;元素杂质包括可能存在于原料、辅料或制剂中&#xff0c;来源于合成中催化剂残留、药品生产制备过程中引入或辅料中存在的、生产设备引入、或容器密闭系统引入。某些元素杂质不仅对药品的稳定性、保质期产…

web 日志分析工具 awstats 简单安装

awstats安装使用awstats是一个开源的日志分析工具&#xff0c;用perl编写。感觉还不错&#xff0c;把安装记录写下&#xff0c;也许有人用的到。可以分析大部分标准日志数据&#xff0c;如apache的&#xff0c;nginx的都可以首先下载awstats工具&#xff0c;http://awstats.sou…

MyOffic(经理评分)

1 public class SE2 {3 //员工类4 private int id;5 6 public int Id7 {8 get { return id; }9 set { id value; } 10 } 11 private string name; 12 13 public string Name 14 …

win7讲述人修复_揭秘:干掉了win7!为何win10屡被吐槽它却“永世留芳”

干掉了win7系统&#xff0c;win10似是更加地“肆无忌惮”了&#xff01;自微软宣布停止Windows 7的全部支持&#xff0c;而后win7的老用户越发频繁地收到win10的升级通知。要知道&#xff0c;“停止全部支持”也就意味着win7不再有任何新特性&#xff0c;在安全方面也不再能得到…

实现图片打乱_2020 回顾 | 25张图片,记录潮州的这一年

一年将近&#xff0c;万物更新这一年&#xff0c;不简单&#xff0c;也不容易让我们把时针拨回到1月通过镜头来回顾潮州这一年来令人难忘、激动和高光的时刻// 1月 //- January - 1月份的潮州充满了年味大家都沉浸在迎接新年的喜悦心情中期盼着新年的到来突如其来的疫情打乱了所…

如何导出SQL Azure脚本?

1). Tasks—Generate Scripts 2). In the “Generate and Publish Scripts” dialog, Next -- Next 3).Click “Advanced”, set likes following: 转载于:https://www.cnblogs.com/RobotTech/archive/2012/03/28/2420707.html

jh锂电保护电路_一文弄懂,锂电池的充电电路,以及它的保护电路方案设计

锂电池特性首先&#xff0c;芯片哥问一句简单的问题&#xff0c;为什么很多电池都是锂电池&#xff1f;锂电池&#xff0c;工程师对它都不会感到陌生。在电子产品项目开发的过程中&#xff0c;尤其是遇到电池供电的类别项目&#xff0c;工程师就会和锂电池打交道。这是因为锂电…

as上的git到码云操作_如何使用git从码云克隆项目到本地?

https://www.cnblogs.com/gbb123/p/6784822.html前段时间&#xff0c;有读者微信问我&#xff0c;如果使用Git从码云或者Github 克隆代码到本地&#xff0c;然后进行提交代码的操作 。可能是新手&#xff0c;刚接触编程&#xff0c;我就从网上找到了这篇文章给他看&#xff0c;…

ruijie交换机lacp动态_Server2016和华为s5720交换机链路聚合增加带宽

一、 背景1、server端企业中一台server2016利用两块1G网卡组成teaming生成一张2G的虚拟网卡&#xff0c;业务数据在这张带宽为2G的虚拟网卡上运行。这块网卡不仅带宽可以提升1倍&#xff0c;而且可以实现冗余&#xff0c;负载均衡&#xff0c;故障自动切换&#xff0c;保证业务…

如何用Netty实现一个轻量级的HTTP代理服务器

为什么会想通过Netty构建一个HTTP代理服务器&#xff1f;这也是笔者发表这篇文章的目的所在。 其主要还是源于解决在日常开发测试过程中&#xff0c;一直困扰测试同学很久的一个问题&#xff0c;现在我就来具体阐述一下这个问题。 在日常开发测试过程中&#xff0c;为了确保上线…

hello my first blog

2019独角兽企业重金招聘Python工程师标准>>> <?phpfunction hello {echo hello world;} 转载于:https://my.oschina.net/guanyue/blog/52043

python 钉钉机器人发送图片_Python结合钉钉实时自动监控股票行情,上班炒股再也不怕老板发现...

最近全球股市开始回暖&#xff0c;之前清仓的股民现在又陆续开始建仓。股市交易时间&#xff0c;一般也是上班时间&#xff0c;频繁的查看股票软件不仅会影响工作效率&#xff0c;也容易被老板以为工作不饱和。所以&#xff0c;我们就借助python的强大功能&#xff0c;把提前设…

IDEA MAVEN Project 显示问题

今天正常打开idea&#xff0c;却发现maven窗口找不到了&#xff1a;试了这些方法 首先idea自带了maven控件&#xff0c;不像Eclipse还需要下载控件&#xff0c;如果你以前有maven在右边&#xff0c;出于某种原因&#xff0c;消失找不到 了&#xff0c;你可以试试我写的方法。 …