- 浏览: 1220388 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
直接上代码把,上面都写了很清楚的注释:
还有重要的就是这个anim文件夹中的explosion.xml
附件是图片资源
package com.ray.bubble; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.View.OnTouchListener; import android.widget.FrameLayout; import android.widget.ImageView; public class BubbleExplosion extends Activity { private FrameLayout parentLayout; private ExplosionView customView; private AnimationDrawable exa1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置无标题栏,全屏效果 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 代码创建一个FrameLayout,设置背景图片 parentLayout = new FrameLayout(this); parentLayout.setBackgroundResource(R.drawable.bg); // 代码创建一个自定义ImageView,并添加到上面的FrameLayout当中 // 并且设置这个ImageView有个动画的背景效果, // 设置为不可见 customView = new ExplosionView(this); customView.setVisibility(View.INVISIBLE); customView.setBackgroundResource(R.anim.explosion); // 获取动画效果背景的图像 exa1 = (AnimationDrawable) customView.getBackground(); parentLayout.addView(customView); // 设置页面点击监听 parentLayout.setOnTouchListener(new LayoutListener()); setContentView(parentLayout); } class ExplosionView extends ImageView { public ExplosionView(Context context) { super(context); } // handle the location of the explosion public void setLocation(int top, int left) { this.setFrame(left, top, left + 40, top + 40); } } class LayoutListener implements OnTouchListener { public boolean onTouch(View v, MotionEvent event) { // first u have to stop the animation,or if the animation // is starting ,u can start it again! customView.setVisibility(View.INVISIBLE); // 如果动画已在运行,则不起效果 exa1.stop(); float x = event.getX(); float y = event.getY(); // 重新定位ImageView在layout上的坐标位置 customView.setLocation((int) y - 20, (int) x - 20); customView.setVisibility(View.VISIBLE); exa1.start(); return false; } } }
还有重要的就是这个anim文件夹中的explosion.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/explode1" android:duration="50" /> <item android:drawable="@drawable/explode2" android:duration="50" /> <item android:drawable="@drawable/explode3" android:duration="50" /> <item android:drawable="@drawable/explode4" android:duration="50" /> </animation-list>
附件是图片资源
- explosion.rar (55.5 KB)
- 下载次数: 145
评论
4 楼
java_chaochao
2010-12-22
不管怎么样动画都演绎两次 - -
3 楼
java_chaochao
2010-12-22
刚刚是我的代码, bubble0.png 会显示两次, 不知到怎解决这问题 :(
2 楼
java_chaochao
2010-12-22
package net.tq5.bubbleexplosion; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.View.OnTouchListener; import android.widget.FrameLayout; import android.widget.ImageView; public class BubbleExplosionActivity extends Activity { public static final String TAG = "BubbleExplosionActivity"; /** Called when the activity is first created. */ private FrameLayout parent; private ExplosionView customView; private AnimationDrawable exal; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // set no title; requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Create a FrameLayout and set the background; parent = new FrameLayout(this); parent.setBackgroundResource(R.drawable.bg); customView = new ExplosionView(this); customView.setVisibility(View.INVISIBLE); customView.setBackgroundResource(R.anim.explosion); exal = (AnimationDrawable) customView.getBackground(); parent.addView(customView); parent.setOnTouchListener(new LayoutListener()); setContentView(parent); } class ExplosionView extends ImageView { public ExplosionView(Context context) { super(context); } // handle the location of the Explosion; public void setLocation(int left, int top) { this.setFrame(left, top, left + 40, top + 40); } } class LayoutListener implements OnTouchListener { @Override public boolean onTouch(View view, MotionEvent event) { // first you stop the animation // you can always restart it; customView.setVisibility(View.INVISIBLE); if (exal.isRunning()) return false; // exal.stop(); float x = event.getX(); float y = event.getY(); Log.i(TAG, "on Touch"); customView.setLocation((int) x - 20, (int) y - 20); customView.setVisibility(View.VISIBLE); exal.start(); return false; } } }
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/bubble0" android:duration="500" /> <item android:drawable="@drawable/explode1" android:duration="500" /> <item android:drawable="@drawable/explode2" android:duration="500" /> <item android:drawable="@drawable/explode3" android:duration="500" /> <item android:drawable="@drawable/explode4" android:duration="500" /> <item android:drawable="@drawable/explode5" android:duration="500" /> </animation-list>
1 楼
java_chaochao
2010-12-22
我尝试把资源中的bubble0.png 也写进了exlosion.xml (第一个), 运行是发现有些不对劲,把每个item的duration 都设为500 放慢速度发现, bubble0.png会显示两次。
然后我在代码中用log输出发现每次触摸屏幕都会至少触发两次 onTouch,
我以为是重复调用onTouch回调方法的原因,便做测试:
在 onTouch 中添加代码:
结果还是不能解决问题, 你测试的时候有这问题吗? 还是我这里什么写错了?
然后我在代码中用log输出发现每次触摸屏幕都会至少触发两次 onTouch,
我以为是重复调用onTouch回调方法的原因,便做测试:
在 onTouch 中添加代码:
if (exal.isRunning) return false;
结果还是不能解决问题, 你测试的时候有这问题吗? 还是我这里什么写错了?
发表评论
-
自定义ProgressDialog
2013-04-21 15:58 1167就2段关键代码: <?xml version=&qu ... -
弹性 ScrollView
2013-04-21 15:14 1416CustomerScrollView.java: clas ... -
走马灯效果文字
2012-02-15 16:05 1899走马灯效果的代码,对Tex ... -
API DEMO中3D旋转Layout效果
2011-12-08 13:07 3021LayoutChange.java: package cn ... -
自定义Loading Dialog
2011-09-12 21:00 2720好久没有更新blog,这段时间忙着换工作的事情,现在赶紧的拾掇 ... -
关于旋转动画效果
2011-05-01 17:13 2262好久没有写过blog了,5.1还在继续劳动,:( 刚研究完一个 ... -
Dialog伸缩动画效果
2011-01-13 14:45 6605效果图: ViewScale.java: publ ... -
球体旋转Anim(主要学习点Matrix知识)
2010-12-09 20:20 2111这点Code主要对View重写进行球体旋转: 知识点: 1.重 ... -
Anim中实现Scale和Alpha操作ImageView
2010-12-09 19:51 2863针对这个动画效果的应用,可以了解如下几个知识点: 1.几种动画 ... -
Image的放大,缩小(zoom in,zoom out)
2010-09-15 10:51 3374package com.example; impor ... -
TextView中各种Interpolator的使用
2010-09-09 13:07 3555package net.blogjava.mobile.i ... -
点击button拖动效果
2010-09-09 10:05 1612这个简单的代码段可以熟悉getX(),getRawX()等方法 ... -
API中画arc的简单代码
2010-09-07 14:45 1523package com.test; import a ... -
文本抖动效果
2010-09-05 21:58 2875几句代码如下: Animation animation = ... -
球体运动效果
2010-08-14 22:42 1774看个效果图: 自定义的View: package ... -
一种动画2中不同实现方式(代码和xml)
2010-08-05 21:01 1458AnimTwo.java文件: package cn.co ... -
Activity之间切换的各种效果(遗憾没有3D的效果)
2010-08-05 19:25 7197下面的Demo是我找到的一个觉得用来在程序中进行Activit ... -
Layout之间3D切换效果Demo
2010-07-26 21:58 4115先上个效果图(跟自己Blog中的浏览图片的代码类似,不过是la ... -
ImageView点击透明度变化效果
2010-07-26 20:53 46321. ClickAlphaChange.java文件 pa ... -
图片3D浏览的Demo
2010-07-26 14:21 2188这是个图片浏览的例子; 刚在群里一个家伙给提供的思路: 1. ...
相关推荐
对于动画,`Drawable`提供了动画支持,如`AnimationDrawable`,这是一种帧动画,通过指定每一帧的`Drawable`和持续时间,可以实现连续播放的效果。例如,制作一个简单的动画: ```xml android:id="@+id/animation...
TransitionDrawable可以实现两个Drawable之间的过渡动画;AnimatableDrawable则可以播放帧动画,如常用的旋转动画。 在我们的Demo中,我们将创建一个自定义的Drawable,包含多个ShapeDrawable,并使用...
在Android开发中,自定义Drawable是创建独特动画效果的重要手段之一。本教程将深入探讨如何利用自定义Drawable来实现一个灵动的红鲤鱼游动动画。这个动画涉及到多个技术点,包括图形绘制、动画帧更新以及算法计算。...
本文将深入探讨Android中的五种主要动画类型:Tween动画、Drawable动画、Property动画、Material Design动画以及Transition动画。 1. Tween动画(补间动画) Tween动画是Android中最基础的动画形式,它通过改变对象...
在"android-gif-drawable 支持gif显示DEMO"中,开发者可以找到一个实际的示例,展示了如何在Android应用中实现GIF动画的显示。这个DEMO包含两个主要部分:本地GIF显示和网络加载GIF显示。 1. **本地GIF显示**: - ...
在实际项目中,自定义Drawable配合属性动画可以实现各种创意效果,如滑动菜单的展开动画、按钮的按下反馈、加载指示器等。通过巧妙地利用自定义Drawable和属性动画,开发者可以提升应用的用户体验,增加交互的趣味性...
`android-drawable-animation-demo`项目提供了一个简单的Android应用示例,展示了如何在按钮上使用可绘制对象及其动画效果。这个Demo是用Java编写的,因此我们可以深入探讨Android中的Drawable、动画系统以及如何在...
这篇博客《Android动画之一:Drawable Animation》深入探讨了如何使用Drawable Animation来实现平滑的界面过渡效果,同时附带了源码供读者实践和学习。 Drawable Animation基于Drawable对象,它可以是一组连续的...
这个项目由作者Wangjia55创建,通过它,我们可以学习如何在Java编程环境中实现自定义的可变状态Drawable。 首先,了解`Drawable`的基本概念。`Drawable`是Android中表示图形对象的接口,它可以是一个简单的颜色、...
这个程序是对android的部分Drawable的实现。包括了BitmapDrawable,InsetDrawable,ClipDrawable,TransitionDrawable,GradientDrawable,...里面没有什么复杂的东西,只是简单实现了这些Drawable,供参考。
本资源包"android 各种加载动画效果"提供了多种加载进度条的设计与实现,旨在帮助开发者们为自己的应用增添更多个性化和吸引人的元素。 1. **进度条类型** - **圆形进度条**:最常见的一种加载样式,表现为一个...
通过阅读博客和研究`DrawableAnimationDemo`项目,开发者可以了解如何在Android应用中实现基于Drawable的简单动画效果。虽然这不涉及更复杂的Tween Animation或Property Animation,但对于初学者来说,理解Drawable ...
在这个"帧动画Demo"中,我们将探讨帧动画的基本原理、实现方式以及在实际项目中的应用。 首先,我们要理解帧动画的基本概念。帧是构成动画的基本单元,每一帧都是一个独立的画面。当这些帧按照一定的速度连续播放时...
系统提供了多种预定义的Drawable类型,如Shape、BitmapDrawable等,但有时我们可能需要实现更复杂的视觉效果,这时就需要自定义Drawable。本教程将通过具体的代码示例,介绍如何在Android中创建自定义的Drawable,...
DEMO APK How? The library provides a few implementations like SearchArrowDrawable, SearchCrossDrawable or DrawerArrowDrawable: ToggleDrawable drawable = new SearchArrowDrawable(context); ...
这个压缩包"安卓动画效果相关-仿360手机卫士扫描的圆形旋转框动画-自定义Drawable.zip"显然是关于实现一个模仿360手机卫士的扫描动画,该动画通常表现为一个圆形边框持续旋转,给人一种正在处理数据或扫描系统的视觉...
在本示例中,我们将探讨如何通过代码实现Drawable的Selector效果,以及如何处理圆形和圆角图片。 首先,Selector通常在XML中定义,但有时为了程序的动态性或避免为每个控件重复编写XML,我们可以用Java代码来创建。...
本文将深入探讨两种主要的动画类型:帧动画(Drawable Animation)和补间动画(View Animation),并以一个简单的“太阳地球月亮”模型为例,来阐述这两种动画的实现原理和应用场景。 ### 帧动画 (Drawable ...