final LinearLayout animationLayer = new LinearLayout(this);
animationLayer.setGravity(Gravity.CENTER);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
final ImageView imageView = new ImageView(this);
final TranslateAnimation translateAnimation = new TranslateAnimation(
0f, width / 5, 0.0f, (height / 2 - height / 16));
translateAnimation.setDuration(ANIMATION_DURATION);
final ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.2f,
1.0f, 0.2f, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.0f);
scaleAnimation.setDuration(ANIMATION_DURATION);
addContentView(animationLayer, new LayoutParams(width, height));
AnimationListener animationListener = new AnimationListener()
{
@Override
public void onAnimationStart(Animation animation)
{
}
@Override
public void onAnimationRepeat(Animation animation)
{
}
@Override
public void onAnimationEnd(Animation animation)
{
mAnimHandler.sendEmptyMessage(CLEAR_ANIMATIONLAYER);
}
};
translateAnimation.setAnimationListener(animationListener);
mAnimHandler = new Handler()
{
@Override
public void handleMessage(Message message)
{
// icon of download item to show
// Bitmap icon = (Bitmap) message.obj;
switch (message.what)
{
case INIT_ANIMATION_RES:
animationLayer.setVisibility(View.VISIBLE);
animationLayer.removeAllViews();
imageView.setImageResource(R.drawable.icon);
// icon
animationLayer.addView(imageView);
sendEmptyMessage(START_ANIMATION);
break;
case START_ANIMATION:
canClickBtn = false;
animationLayer.startAnimation(translateAnimation);
if (animationLayer.getChildCount() > 0)
{
animationLayer.getChildAt(TOP_LAYER)
.startAnimation(scaleAnimation);
}
else
{
throw new IndexOutOfBoundsException();
}
break;
case CLEAR_ANIMATIONLAYER:
canClickBtn = true;
// clear all views in this layer
animationLayer.setVisibility(View.INVISIBLE);
animationLayer.clearAnimation();
animationLayer.removeAllViews();
// call back of UI,go to next step
if (null != mListener)
{
mListener.onLoad();
}
else
{
throw new NullPointerException();
}
break;
default:
break;
}
}
};
分享到:
相关推荐
在Android开发中,动画(Animation)是提升用户体验的重要手段之一,尤其在用户界面设计中,动画效果能够增加应用的互动性和吸引力。本话题主要聚焦于"图片移动效果",这通常涉及到Android中的视图动画(View ...
`Animation-list`是Android XML动画资源的一种类型,它定义了一组子项(通常为ImageView的源),这些子项按照指定的顺序和时间间隔依次显示,从而形成动画效果。在`res/anim`目录下创建XML文件,例如`wait_animation...
"安卓开发引导页面动画效果"这个主题关注的是如何在引导页面中添加动态过渡效果,提升用户体验,吸引用户的注意力,同时增加应用的专业感和趣味性。 在安卓中,实现动画效果主要依赖于Android Animation框架,包括...
在实际开发中,我们还可以利用第三方库,如NineOldAndroids支持在低版本设备上使用属性动画,Lottie库用于加载和播放Adobe After Effects导出的JSON动画文件,实现高级的图形动画效果。 在"Demo_Animation"这个...
这个"索引搜索(带动画效果)"的主题聚焦于如何利用索引来快速检索列表中的元素,并通过动画效果来展示排序过程,这在iOS应用开发中非常常见。下面我们将详细探讨索引搜索的原理、实现方式以及与iOS开发相关的知识点。...
`animation_list`是Android系统提供的一种用于在ImageView中实现帧动画的资源类型,它允许开发者轻松地创建连续播放的图像序列,从而创造出动态效果。本篇文章将深入讲解如何使用`animation_list`来实现ImageView的...
在网页设计中,HTML(超文本标记语言...这种翻页动画效果可以应用于电子书、画廊、教程等多种场景,提高用户体验并增加网站的趣味性。通过不断学习和实践,开发者可以创造出更多创新的交互设计,提升网页的视觉表现力。
在电商网站如淘宝上,当用户完成支付后,一个动态的打勾图标不仅增加了视觉吸引力,还能提供明确的反馈,让用户知道他们的操作已经成功。 首先,我们要理解这个动画效果的核心元素:打勾图形。在CSS3中,我们可以...
`Animation-list`是Android系统提供的一种用于创建帧动画的视图,常用于实现等待加载、旋转图标等动态效果。本教程将详细讲解如何使用`Animation-list`来创建一个简单的等待加载动画。 首先,我们需要了解`...
在Android平台上,动画效果是提升用户体验的关键因素之一。"FrameByFrame动画"是Android动画的一种类型,它通过连续播放一系列图像来创建动态效果,类似于传统的电影制作方式。在这个主题中,我们将深入探讨如何在...
这个压缩包文件包含了使用Android Studio实现背景图下拉放大以及各种动画效果(移动、旋转、渐变、伸缩)的源代码。下面将详细讲解这些动画效果的实现原理和关键知识点。 1. **背景图下拉放大**: 当用户下拉屏幕...
在Android平台上,动画效果是提升用户体验的关键因素之一。"弹球效果"是Android动画中的一种常见且有趣的实现,它可以为用户界面增添动态美感和交互性。让我们深入探讨一下如何在Android中实现这样的动画效果。 ...
5. **处理边界情况**:在移动表项时,需要考虑边界条件,例如当尝试将最顶部的项目上移或者最底部的项目下移时,应防止出现错误,此时可以提示用户已到达边界,无法继续移动。 在源码中,你可能会看到以下关键代码...
本资源集合了上百种不同的Android动画效果,涵盖了基本动画、帧动画、属性动画等多种类型,非常适合开发者在实际项目中进行参考和应用。 1. **基本动画(View Animation)**: - AlphaAnimation:透明度动画,可以...
本教程将详细介绍如何在List Control中实现列表项目的上下移动,这对于创建具有动态排序功能的用户界面非常有用。 首先,我们需要理解List Control的基本结构。在MFC(Microsoft Foundation Classes)库中,List ...
注意:这里实际上并不是直接调用startAnimation()和clearAnimation()方法,因为`animation-list`作为背景时,需要使用`AnimationDrawable`对象来控制动画。 ```java AnimationDrawable loadingAnim = ...
- 在`res/drawable`目录下创建新的XML文件,定义动画序列,可以使用`<animation-list>`标签结合`<item>`标签来实现帧动画。 - 在`res/anim`目录下创建XML文件,定义动画的属性,如动画时长、延迟、平滑度等,可以...
- **DOM操作**:通过Document Object Model(DOM)接口,JS可以修改页面上的元素,如改变元素的位置、大小、样式等,实现动画效果。 - **定时器**:利用setTimeout或requestAnimationFrame来控制动画的帧率和执行...
本文将深入探讨一个基于JavaScript实现的立体图片相册动画效果,它为网站增添了视觉吸引力,并提供了简单易用的用户体验。 首先,这个立体图片相册动画效果的核心在于其纯JavaScript的实现方式。JavaScript是一种...
本示例着重讨论如何实现帧动画,并结合移动位置、缩放以及改变透明度这三种动画效果。首先,我们来详细了解帧动画的基本概念。 帧动画是通过在`AnimationDrawable`类中定义一个包含多帧图片的资源来实现的。这些...