Android实现蝴蝶动画,飞舞的蝴蝶 - Android中的动画详解系列_Linux编程_Linux公社-Linux系统门户网站...

news/2024/5/10 22:24:13/文章来源:https://blog.csdn.net/weixin_32809369/article/details/117495401

这一篇来使用逐帧动画和补间动画来实现一个小例子,首先我们来看看Android中的补间动画。

Android中使用Animation代表抽象的动画类,该类包括下面几个子类:

AlphaAnimation:透明改变动画。

ScaleAnimation:大小缩放动画。

TranslateAnimation:位移变化动画。

RotateAnimation:旋转动画。

我们下面使用位移动画和逐帧动画来实现这个小例子,先看看运行效果:

93a0aad4e727cb15585754c7d5c39a62.gif

蝴蝶挥动翅膀的逐帧动画文件:

android:oneshot="false">

android:oneshot="false">

界面布局文件:

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/background"

>

android:id="@+id/butterfly"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@anim/butteryfly"

/>

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/background"

>

android:id="@+id/butterfly"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@anim/butteryfly"

/>

具体逻辑及位移动画:

fb893e262de1e6a2375470c9e2d58750.png

packagecom.example.butteryfly;

importjava.util.Timer;

importjava.util.TimerTask;

importandroid.app.Activity;

importandroid.graphics.drawable.AnimationDrawable;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.view.Display;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.view.animation.TranslateAnimation;

importandroid.widget.ImageView;

publicclassMainActivityextendsActivity {

privatefloatcurX =0;

privatefloatcurY =30;

privatefloatnextX =0;

privatefloatnextY =0;

privateintwindowW =0;

privateintwindowH =0;

privateImageView imageView;

Handler handler = newHandler(){

publicvoidhandleMessage(android.os.Message msg) {

if(msg.what ==0x123){

if(nextX > windowW || nextY > windowH){

curX = nextX = 0;

}else{

nextX += 8;

}

nextY = curY + (float) (Math.random() *20-10);

TranslateAnimation anim = newTranslateAnimation(curX, nextX, curY, nextY);

curX = nextX;

curY = nextY;

anim.setDuration(200);

imageView.startAnimation(anim);

}

};

};

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

imageView = (ImageView) findViewById(R.id.butterfly);

Display display = getWindowManager().getDefaultDisplay();

windowW = display.getWidth();

windowH = display.getHeight();

finalAnimationDrawable butterfly = (AnimationDrawable) imageView.getBackground();

imageView.setOnClickListener(newOnClickListener() {

@Override

publicvoidonClick(View arg0) {

butterfly.start();

newTimer().schedule(newTimerTask() {

@Override

publicvoidrun() {

handler.sendEmptyMessage(0x123);

}

}, 0,200);

}

});

}

}

0b1331709591d260c1c78e86d0c51c18.png

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

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

相关文章

创建高安全性PHP网站的几个实用要点

2019独角兽企业重金招聘Python工程师标准>>> 大家都知道PHP已经是当前最流行的Web应用编程语言了。但是也与其他脚本语言一样,PHP也有几个很危险的安全漏洞。所以在这篇教学文章中,我们将大致看看几个实用的技巧来让你避免一些常见的PHP安全问…

实战J2EE—开发购物网站(一)

前言本文通过实战全程编写一个购物网站来讲解如何使用J2EE来建立企业级的网络应用!本文针对的是像我这样的绝对初学者,如果您是高手就莫要见笑了!一:搭建开发平台本文从实战出发,所以关于一些概念性的问题就不…

实战J2EE—开发购物网站(二)

第三步,安装配置jBuilder 7这里我安装的是weblogic版安装jBuilder不要把它装到带有空格的目录里如Prograih Files,或是中文目录中,不然编译时会出错的。安装很简单,不必多言,这里着重讲一下配置小技巧一:大…

实战J2EE—开发购物网站(三)

二:创建数据库小试牛刀oracle 8i(顺便我们练练手)(为了方便,我就将oracle 8i简写8i了)8i和9i确实有些不一样,不过在界面上区别不大,还是以我的oracle 8i为例为大家讲解一下吧!既然是实战,首先我们为…

部署社交网站

项目案例:部署社交网站前言:本次项目是搭建一套动态网站服务器平台,在上面运行社交网站(例如:人人网,开心网,天涯论坛)。相关知识点在前面的课程中都有所涉及,今天的实验…

Python自动化备份系统及网站

随着目前IT迅猛的发展,自动化运维对于Linux运维人员也越来越重要,传统的运维方式靠大量的人力,现在也逐渐转向自动化运维,我们常见的跟自动化有关的软件有哪些呢。今天我们来简单列举一下:kickistart、puppet、cobbler…

SEO从业五年,软文编写经验总结

从事SEO工作五年,对于很多SEO的技术也有一些自己的经验和想法,在这里想和大家交流一下关于SEO中的主要一块——软文编写的经验和总结。一、最关键:蜘蛛喜欢收录并且有排名蜘蛛喜欢的,用户不一定喜欢;用户喜欢的,蜘蛛一…

php远程获取网站的关键字信息(并附:php判断字符串编码)

php远程获取网站的关键字信息&#xff08;并附&#xff1a;php判断字符串编码&#xff09; 很明显&#xff0c;php100是gbk编码的网站。现在获取它的关键字&#xff0c;并无乱码的显示出来&#xff0c;然后好保存到数据库。 123456789101112131415161718192021<meta http-eq…

百度seo排名点击器app_seo如何快速排名百度首页

seo排名首页是多个要素共同作用的结果&#xff0c;达成seo快速排名首页结果同样需要多个优化要素共同作用&#xff0c;一般而言seo不能快速起效。如果仅仅以快速而言&#xff0c;推荐的方法包括但不限于301永久重定向&#xff0c;快照劫持&#xff0c;模拟用户行为以及短时间增…

网站速度与性能优化要抓主要矛盾解决—瓶颈法

本文主要是思维性的总结&#xff0c;是总结优化的方法学,对方面上面的错误进行总结。不会涉及到前端具体的技术&#xff0c;比如对js和css进行压缩、合并&#xff0c;减少http请求,缓存头控制等等。这些那本《高性能建站指南》都有现成的。 基于本人在多家公司分别遇到的网站速…

搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3

搭建简易Web GIS网站&#xff1a;使用GeoServerPostgreSQLPostGISOpenLayers3 1 服务器搭建 使用Tomcat需要先安装Java。从Oracle官方网站下载Java最新版本&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/index.html 安装完成Java后&#xff0…

对象网站中全局信息的抽象(Web.Config)

几个常用的全局常量 调用Web.config节点的方法 本文转自博客园张占岭&#xff08;仓储大叔&#xff09;的博客&#xff0c;原文链接&#xff1a;对象网站中全局信息的抽象&#xff08;Web.Config&#xff09;&#xff0c;如需转载请自行联系原博主。

seo如何优化文章-知识交流_SEO优化文章如何发布可以实现快速排名

很多人做SEO优化的时候&#xff0c;不知道如何发文章&#xff0c;大家的感觉就是SEO优化很难写&#xff0c;今天知啦娱乐网小编手把手教大家如何发文章&#xff0c;而且是发有用的文章&#xff0c;可以实现搜索引擎快速排名。如果想了解&#xff0c;请继续往下看&#xff1a;SE…

SeaJS 前端模块化开发探索与网站性能优化实践

2019独角兽企业重金招聘Python工程师标准>>> PDF链接&#xff1a;http://pan.baidu.com/s/1CCz4C 转载于:https://my.oschina.net/shawnSongxiaoqiang/blog/361020

网站域名可访问但经过搜索引擎访问不了的解决办法

今天接了个这样的活&#xff0c;这个自己也头一次遇到&#xff0c;把经验分享给大家。网上下载的免费的asp源码&#xff0c;底部写着九牧科技这个公司源码&#xff0c;网站做好了&#xff0c;被百度收录发现不能访问&#xff0c;看着地址也没有错的&#xff0c;有的浏览器提示重…

ASP.NET的SEO: 服务器控件背后——SEO友好的Html和JavaScript

本系列目录 假设你需要从一个页面转向其他页面&#xff0c;下面有很多种方式&#xff0c;你是如何选择的呢&#xff1f;你能清晰的说明理由么&#xff1f; <%--链接的表现形式--%><asp:HyperLink ID"HyperLink1"runat"server"NavigateUrl"…

有什么网站是python做的_自学python有什么网站

Python是未来人工智能最好的编程语言&#xff0c;很多程序员在有其她编程基础的情况选择学习python是比较容易的&#xff0c;当然现在很多想进入编程界的新手选择python开始接触学习编程&#xff0c;但是由于经费有限&#xff0c;只能选择最便宜的学习方式就是自学成才&#xf…

关键词组合工具_网站关键词的定位和布局

每个SEO人员都会有自己的核心关键字定义。百度的核心关键词一直是人们讨论的话题。我们知道&#xff0c;这是一个流量拥挤和匮乏的时代。核心关键字的选择决定了我们对流量的选择以及基于品牌搜索流量的网站定位。那么关键词怎么选呢&#xff1f;选择关键词有七种方法&#xff…

访问量超过100万的电子商务网站技术架构=LVS

本连载首篇介绍到电子商务网站高性能、高可用解决方案。从架构图上的方案&#xff0c;应用的是LVSkeepalived负载均衡。实现高性能、高可用解决方案 (服务器组成集群&#xff0c;达到负载均衡&#xff0c;高性能、高可用、高可伸缩性的服务器集群)互联网->LVS负载均衡(前端四…

中head函数_wordpress插件,怎样向网站添加数据?试试wp_head()函数

有时候&#xff0c;我们会碰到这样一种情况&#xff1a;我们的wordpress网站主题模板已经定型了&#xff0c;但是&#xff0c;我们后期又想向wordpress网站添加一些新功能&#xff0c;这时候&#xff0c;我们该怎么办&#xff1f;是继续修改wordpress网站主题模板吗&#xff1f…