`
南瓜猿
  • 浏览: 45152 次
  • 性别: Icon_minigender_1
  • 来自: 长沙市
社区版块
存档分类
最新评论

Android图形动画 使用ScaleAnimation

阅读更多

使用ScaleAnimation实现了一个类似于翻转的动画效果。

感觉ScaleAnimation算是一个比较好用的动画类了,看了一下API感觉方法和构造方法也都很简单。

就不再赘述太多直接上代码吧- -

 

第一步:

准备两张照片,放置在res/drawble下。

首先在layout中写好布局文件,这里要用framelayout布局,让两张图片一张覆盖在另一张上。

相信聪明的你看到这里已经秒懂等下的图片处理方式了。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.dfanzhuan.MainActivity" >

    <ImageView
        android:id="@+id/ivA"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/image_a" />

    <ImageView
        android:id="@+id/ivB"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/image_b" />

</FrameLayout>

 第二部:

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;

public class MainActivity extends Activity {

	private ImageView imgA;
	private ImageView imgB;
	
	private ScaleAnimation sato0 = new ScaleAnimation(1, 0, 1, 1, 
			Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);           
	private ScaleAnimation sato1 = new ScaleAnimation(0, 1, 1, 1, 
			Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);           
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
		findViewById(R.id.root).setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				if (imgA.getVisibility() == View.VISIBLE) {
					imgA.startAnimation(sato0);
				}else {
					imgB.startAnimation(sato0);
				}
			}
		});
	}
	
	private void showImageA() {
		imgA.setVisibility(View.VISIBLE);
		imgB.setVisibility(View.INVISIBLE);
	}
	
	private void showImageB() {
		imgA.setVisibility(View.INVISIBLE);
		imgB.setVisibility(View.VISIBLE);
	}
	
	private void initView() {
		//指定执行时间
		imgA = (ImageView) findViewById(R.id.ivA);
		imgB = (ImageView) findViewById(R.id.ivB);
		showImageA();
		//动画执行时间
		sato0.setDuration(500);
		sato1.setDuration(500);
		
		sato0.setAnimationListener(new AnimationListener() {
			
			@Override
			public void onAnimationStart(Animation animation) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onAnimationRepeat(Animation animation) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onAnimationEnd(Animation animation) {
				if (imgA.getVisibility() == View.VISIBLE) {
					imgA.setAnimation(null);
					showImageB();
					imgB.startAnimation(sato1);
				} else {
					imgB.setAnimation(null);
					showImageA();
					imgA.startAnimation(sato1);
					
				}
			}
		});
	}

}

 个人感觉难点在于对时间和图片翻转情况的理解,不过写几次以后就just soso了~

下面是效果图,因为还不会做git。。。所以发四张好了:



 

 



 

 

  • 大小: 163.5 KB
  • 大小: 20.5 KB
  • 大小: 83.8 KB
  • 大小: 117.9 KB
7
0
分享到:
评论
2 楼 南瓜猿 2015-11-03  
Cb123456 写道
极客学院的吗??

极客学院有专门讲这个的吗?想去看看
1 楼 Cb123456 2015-11-03  
极客学院的吗??

相关推荐

    android总结动画显示效果.zip

    火焰动画通常属于2D图形动画,可以通过Canvas和Paint类来绘制,或者使用BitmapShader来实现更复杂的火焰纹理效果。以下是一些可能涉及的技术点: 1. **帧动画(Frame Animation)**:通过连续播放一系列静态图片来...

    android几种图形特效

    如果需要在动画中实现平滑的缩放效果,可以使用Android的Animation框架,如ScaleAnimation类。 图片的倒影效果可以通过创建原图的镜像,然后将其旋转180度并上下堆叠来实现。这通常涉及到Bitmap的复制、翻转和组合...

    Android各种动画效果全有

    还有其他第三方库,如Lottie,可以加载并播放Adobe After Effects生成的动画JSON文件,实现更高级的图形动画效果。 总之,理解和掌握Android的各种动画机制是提升应用质量的重要步骤,而"Android各种动画效果全有...

    android多种动画效果demo

    例如,可以利用`onDraw()`方法进行图形绘制,然后使用`ObjectAnimator`或`ValueAnimator`来实现平移、旋转、缩放等动画。此外,还可以结合`Property`和`AnimatorSet`来创建复杂的动画序列。为了实现更精细的控制,还...

    android弹出框动画效果

    这些效果通常需要对Android图形系统有深入理解,包括视图层次、绘图过程以及硬件加速等。开发者可能使用了`Camera`类来实现3D转换,通过改变相机的位置和角度,使Dialog在屏幕上呈现出立体的进出效果。 总结起来,...

    android 动画

    - **Android Vector Asset Studio**:创建矢量图形并支持动画,优化内存使用。 - **Android Studio Layout Editor**:直观地设计布局,预览动画效果。 - **Android Profiler**:性能分析工具,帮助优化动画的流畅...

    android fram游戏动画

    在Android中,我们可以使用`AnimationDrawable`类来实现帧动画。这个类允许我们将多个图片资源(如PNG或JPEG)放在一个Drawable目录下,然后通过XML定义帧的顺序和持续时间。 例如,创建一个帧动画的XML文件可能...

    android动画制作详解

    Android中的`Animation`类是补间动画的基础,包括`TranslateAnimation`(平移)、`RotateAnimation`(旋转)、`ScaleAnimation`(缩放)和`AlphaAnimation`(透明度变化)。 3. **属性动画(Property Animation)**...

    android仿 path 应用上左下角按钮的动画效果

    在按钮动画中,可能会使用`AlphaAnimation`(透明度动画)让按钮逐渐出现或消失,`TranslateAnimation`(平移动画)让按钮从左下角滑出,或者`ScaleAnimation`(缩放动画)调整按钮的大小。 2. **属性动画**(`...

    android 动画效果

    这为实现独特视觉效果提供了无限可能性,但也需要对Android图形系统有深入理解。 总之,Android动画效果的实现涉及到多个层次和组件,开发者需要根据实际需求选择合适的动画类型,并注意性能优化。"PlayerDemo"项目...

    动画实现 实现图片的动态效果

    在Android中,可以使用`ScaleAnimation`类,设定初始和结束的缩放比例。在iOS中,同样使用`CABasicAnimation`,改变`transform.scale`属性。对于更复杂的交互式缩放,可以考虑使用手势识别器,如Android的`...

    Android 高仿墨迹天气背景动画效果-云,风,雪等-IT计算机-毕业设计.zip

    首先,我们要理解这个项目的核心知识点是Android图形渲染和动画设计。在Android系统中,我们可以使用Canvas和Paint类来绘制2D图形,包括云、风和雪等天气元素。Canvas是画布,用于绘制各种图形;Paint则负责定义颜色...

    这是一个动画示例程序,这里有动画的综合运用

    例如,在Android中,我们可以使用Animation API,包括ValueAnimator、ObjectAnimator、TranslateAnimation、ScaleAnimation等,这些类提供了丰富的动画功能。在iOS中,Core Animation框架允许开发者创建复杂的2D和3D...

    Android-仿斗鱼直播送礼物效果

    这可以通过使用Android的Animation API,如TranslateAnimation、ScaleAnimation、RotateAnimation,或者使用属性动画(Property Animation)系统,如ObjectAnimator、ValueAnimator来实现。此外,也可以结合使用...

    补间动画的实质示例源码

    补间动画是计算机图形学中的一个重要概念,尤其在游戏开发和UI设计中广泛使用。它是一种平滑物体从一个状态过渡到另一个状态的技术,通过在一段时间内连续改变对象的属性来实现动态效果。本示例源码将深入揭示补间...

    安卓SVG矢量动画DEMO--vectalign-samples--SVG和VectorDrawable

    5. `TweenAnimation`:如果DEMO包含对传统位图的动画处理,可能会使用TweenAnimation类,如TranslateAnimation、ScaleAnimation等,这些动画适用于View级别的变换。 6. `vectorDrawables.useSupportLibrary`:在...

    android 游戏开发之Tween动画的实现

    Tween动画在不涉及复杂图形变换的情况下,能够轻松实现物体位置、大小、透明度等属性的变化,极大地提升了用户体验。 首先,Tween动画的核心在于`Animation`类和其子类,如`AlphaAnimation`(透明度变化)、`...

    第11条-Android动画/图形入门指南

    Canvas是Android中的绘图基础,它是Android图形层的一部分,允许开发者在Surface上绘制各种图形,如线条、圆、文本等。通过Canvas,开发者可以使用Path对象创建复杂的路径,使用BitmapShader为图像应用图案或颜色...

    安卓开发引导页面动画效果

    项目可能包含了XML布局文件、Java或Kotlin代码,以及可能的资源文件,如动画相关的图形和音频。 实现引导页动画时,需要注意以下几点: - **性能优化**:避免过度复杂的动画导致性能下降,确保动画流畅运行。 - **...

Global site tag (gtag.js) - Google Analytics