给ImageView增加动画背景+随意拖动

步骤:

1.创建animation-list的动画xml文件

2.将上一步的xml设置为ImageView对象的背景资源

3.start动画

代码:

(代码中顺便为ImageView对象加上了随意拖动效果)

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.animation.AlphaAnimation;
import android.view.WindowManager;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView rocketImage;private Display display;private Handler handler = new Handler(){public void handleMessage(Message msg) {int y = (Integer) msg.obj;rocketImage.layout(rocketImage.getLeft(), y, rocketImage.getRight(), y +rocketImage.getHeight());};};private AlphaAnimation aa;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);aa = new AlphaAnimation(0.0f,1.0f);aa.setDuration(500);aa.setRepeatCount(1);aa.setRepeatMode(AlphaAnimation.REVERSE);aa.setFillAfter(true);// 得到默认的分辨率对象WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);display = wm.getDefaultDisplay();rocketImage = (ImageView) findViewById(R.id.iv_rocket);// 加载动画资源文件rocketImage.setBackgroundResource(R.drawable.rocket);// 得到空间上的动画对象AnimationDrawable rocketAnimation = (AnimationDrawable) rocketImage.getBackground();rocketAnimation.start();rocketImage.setOnTouchListener(new OnTouchListener() {private int startX;private int startY;@Overridepublic boolean onTouch(View v, MotionEvent event) {// 得到触摸事件的类型int action = event.getAction();switch (action) {case MotionEvent.ACTION_DOWN:// 按下的事件startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_MOVE:// 移动的事件// 2、在移动的过程中得到结束坐标点int endX = (int) event.getRawX();int endY = (int) event.getRawY();// 3、计算移动的偏移量int dX = endX - startX;int dY = endY - startY;// 4、更新图标的位置int l = rocketImage.getLeft() + dX;int t = rocketImage.getTop() + dY;int r = rocketImage.getRight() + dX;int b = rocketImage.getBottom() + dY;if (l < 0 || t < 0 || r > display.getWidth()|| (b + 40) > display.getHeight()) {break;}rocketImage.layout(l, t, r, b);// 5、得到新的开始坐标点startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_UP:// 抬起的事件int ll = rocketImage.getLeft();int lr = rocketImage.getRight();int lb = rocketImage.getBottom();if(ll > 100 && lr < 300 && lb >  350){sendRocket();iv_bottom.startAnimation(aa);iv_top.startAnimation(aa);}break;}return true;}});}private void sendRocket() {new Thread(){public void run() {for(int i= 0; i< 12;i++){SystemClock.sleep(10);int y =  480-i*48;Message msg = Message.obtain();msg.obj = y;handler.sendMessage(msg);
//                  rocketImage.layout(rocketImage.getLeft(), y, rocketImage.getRight(), y +rocketImage.getHeight());}};}.start();}}

rocket.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><item android:drawable="@drawable/desktop_rocket_launch_1" android:duration="200" /><item android:drawable="@drawable/desktop_rocket_launch_2" android:duration="200" />
</animation-list>

ImageView增加动画效果相关推荐

  1. php加入js动态效果,js怎么给输入框增加动画效果

    这次给大家带来js怎么给输入框增加动画效果,js给输入框增加动画效果的注意事项有哪些,下面就是实战案例,一起来看一下. (function() { function p() { window.requ ...

  2. ios scrollView中增加动画效果,自动滚动UIScrollView,利用了NSTimer

    转载自:http://blog.csdn.net/z343929897/article/details/7974753 按照赵总要求,在首页上边需要加广告条,本来以为挺复杂的,原来挺简单 在类的申明文 ...

  3. Android动画效果-更新中

    概述 Android系统提供了三种实现动画的方式,一种是补间动画(Tween Animation 在SDK中成为View Animation),另一种是帧动画(Frame Animation 在SDK ...

  4. Android RecyclerVIew 列表实现 编辑、单选、全选、删除、动画效果(附源码)

    前言 眼下都2020年了,你不会还在使用ListView吧? 正文 因为最近写的一个项目里面有关于列表的编辑相关的功能,其实也是类似与腾讯视频的观看历史的列表操作,你可以先尝试一下,写这个主要是业务逻 ...

  5. 前端实现图片快速反转替换_在canvas上实现元素图片镜像翻转动画效果的方法

    一.Canvas图片水平镜像翻转效果预览 demo页面中点击图片动画效果可见. 二.Canvas上实现图片镜像翻转的实现 CSS中要想实现元素的翻转效果,比较简单,例如我们希望某一张图片水平镜像翻转, ...

  6. css实现人走路效果,如何使用纯CSS实现一个人独自行走的动画效果(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现一个人独自行走的动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github ...

  7. html数字动画效果,原生JavaScript代码实现数字更新的动画效果

    前言 在很多数据统计类型网站的首页,经常会看到数据在动态的更新,而且会以动画的效果呈现. 今天这篇文章我们就来看看这个效果如何实现吧. 文中的代码已经放到github上了,感兴趣的同学可以自取.htt ...

  8. flash图片如何镜像翻转_在canvas上实现元素图片镜像翻转动画效果的方法

    这篇文章主要介绍了在canvas上实现元素图片镜像翻转动画效果的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧! 一.Canvas图片水平镜像翻转效果预览 ...

  9. 前端实现图片快速反转替换_HTML5开发之canvas实现元素图片镜像翻转动画效果的方法...

    一.Canvas图片水平镜像翻转效果预览 您可以狠狠的点击这里:canvas图片水平镜像翻转动画demo demo页面中点击图片动画效果可见. 二.Canvas上实现图片镜像翻转的实现 CSS中要想实 ...

最新文章

  1. ibm笔记本电脑电池_开善乡 2.0间距笔记本电池连接器公座 11P电池座接口
  2. LUT 查表反色处理
  3. About darwin OS
  4. mysql使用的索引长度_MySQL索引的索引长度问题
  5. mysql alidata_linux下安装mysql | 学步园
  6. linux的locate工具,linux文本查找工具之locate、find
  7. pandas数据聚合与分组
  8. MySQl Modify JSON Values
  9. 谈谈文本匹配和多轮检索
  10. 今后几个月的IT读书计划
  11. 网络技术独立的×××-SDN和三个问题
  12. Repeater双重绑定(子菜单前台代码:)
  13. 微信小程序如何去掉button边框
  14. 【数据结构 严蔚敏版】 链式栈基本操作
  15. 【Excel】数据透视表—标签合并居中
  16. java基础知识大全(带练习题)
  17. dbf是什么文件格式
  18. 【ABAP】 Smartforms 字符串中上标/下标打印实现
  19. jquery 源码分析系列1
  20. 关于思源笔记与docker的部分问题

热门文章

  1. Mac Updating Homebrew...卡住了
  2. NOIP提高组初赛知识点解析错题本
  3. 【CSP】【Java】工资计算
  4. C语言-编写求两个双精度数之和的函数
  5. 如何在Windows cmd上递归删除文件或文件夹?批量删除指定大小的图片文件
  6. 查看家庭组组计算机用户名密码是什么,windows10系统查看家庭组密码的设置方法介绍...
  7. 双管齐下,JDK源码+HotSpot源码一次性学完
  8. FZU(2188):狼羊过河问题,状态转移,BFS求解
  9. excel中数值数据但无法进行数值计算,错误#VALUE!
  10. 牛客小白赛60(F.被抓住的小竹)61(E.排队)(数学+推公式)