Android实现2D翻转动画
2015-11-16 17:30
543 查看
android中有很多动画效果,用起来非常会对APP展示有不错的效果,这里就来简单实现一个图片2D翻转的动画效果,以此来熟悉Android中动画效果的使用。后面会给出源码(注意:本事例使用Android studio 开发的),
1、首先看看主布局:
主布局很简单,就是使用FrameLayout作为父容器,在其中加入两个imageview;用这两个imageview作为动画演示。
2、主代码:
关于ScaleAnimation 官方给出了非常详细的解释:
请点击详解地址查看,作为开发者,要学会查看官方文档,具备一定的英文能力是很关键的。
下面请看看效果,是不是很酷,实现起来也非常简单:
点击下载源码
1、首先看看主布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/root" tools:context=".MainActivity"> <ImageView android:id="@+id/iamge1" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/img1"/> <ImageView android:id="@+id/iamge2" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/img2"/> </FrameLayout>
主布局很简单,就是使用FrameLayout作为父容器,在其中加入两个imageview;用这两个imageview作为动画演示。
2、主代码:
package com.example.my.scaleanimation; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.animation.Animation; import android.view.animation.ScaleAnimation; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private ImageView image1,image2,image3,image4,image5; 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 View.OnClickListener() { @Override public void onClick(View v) { if (image1.getVisibility() == View.VISIBLE){ image1.startAnimation(sato0); }else{ image2.startAnimation(sato0); } } }); } private void showImage1(){ image1.setVisibility(View.VISIBLE); image2.setVisibility(View.GONE); } private void showImage2(){ image1.setVisibility(View.GONE); image2.setVisibility(View.VISIBLE); } private void initView(){ image1 = (ImageView) findViewById(R.id.iamge1); image2 = (ImageView) findViewById(R.id.iamge2); showImage1(); sato0.setDuration(500); sato1.setDuration(500); sato0.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (image1.getVisibility() == View.VISIBLE){ image1.setAnimation(null); showImage2(); image2.startAnimation(sato1); }else{ image2.setAnimation(null); showImage1(); image1.startAnimation(sato1); } } @Override public void onAnimationRepeat(Animation animation) { } }); } }
关于ScaleAnimation 官方给出了非常详细的解释:
请点击详解地址查看,作为开发者,要学会查看官方文档,具备一定的英文能力是很关键的。
下面请看看效果,是不是很酷,实现起来也非常简单:
点击下载源码
相关文章推荐
- Android Studio 常用快捷键
- Monkey测试
- 文件系统中的保留空间
- 自定义Dialog
- Android so 文件进阶<二> 从dlsym()源码看android 动态链接过程
- Mac 下android sudio 如何获取sha1与md5值
- Android 之JDBC
- android生命周期参考
- 下载android4.4.2源码全过程(附已下载的源码)
- Android——theme
- android MediaStore 视频以及视频缩略图问题记录
- android studio 5.0 MD 开发实践,初识
- Android 5.1 Gallery2编译报错make: *** No rule to make target `out/target/product/techain6572_wet_l/obj/S
- Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
- Android中的Touch事件处理
- Android使用单元测试
- Android动画(Android开发艺术探索笔记)
- android 滑动菜单之SlidingMenu
- Android 时间优化和内存优化
- Android中的自定义界面的Dialog