android动画 -- 帧动画 补间动画
2016-01-02 10:48
274 查看
(1)Frame Animation(帧动画) 主要用于播放一帧帧准备好的图片,类似GIF图片,优点是使用简单方便、缺点是需要事先准备好每一帧图片;
(2)Tween Animation(补间动画) 仅需定义开始与结束的关键帧,而变化的中间帧由系统补上,优点是不用准备每一帧,缺点是只改变了对象绘制,而没有改变View本身属性。因此如果改变了按钮的位置,还是需要点击原来按钮所在位置才有效。
下面比较好的参考学习下:
http://www.2cto.com/kf/201504/393298.html
http://blog.csdn.net/forlong401/article/details/9750903/
Tween Animation 例子(多动手):
MainActivity.java
activity_main.xml
(2)Tween Animation(补间动画) 仅需定义开始与结束的关键帧,而变化的中间帧由系统补上,优点是不用准备每一帧,缺点是只改变了对象绘制,而没有改变View本身属性。因此如果改变了按钮的位置,还是需要点击原来按钮所在位置才有效。
下面比较好的参考学习下:
http://www.2cto.com/kf/201504/393298.html
http://blog.csdn.net/forlong401/article/details/9750903/
Tween Animation 例子(多动手):
MainActivity.java
package com.example.anim; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.animation.Animation; import android.view.animation.RotateAnimation; import android.view.animation.TranslateAnimation; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView image=(ImageView)findViewById(R.id.imageView1); Button btn1=(Button)findViewById(R.id.button1); Button btn2=(Button)findViewById(R.id.button2); final Animation translateAnimation=new TranslateAnimation(0,200,0,-100); //设置旋转变化动画对象 //final Animation translateAnimation = new RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { translateAnimation.setDuration(3000); //设置动画持续时间 translateAnimation.setRepeatCount(2); //设置重复次数 translateAnimation.setRepeatMode(Animation.RESTART); //重新从头执行 //translateAnimation.setRepeatMode(Animation.REVERSE); //反方向执行 translateAnimation.setFillAfter (true); //保留在终止位置 image.setAnimation(translateAnimation); //设置动画效果 translateAnimation.startNow(); //启动动画 } }); /* * translateAnimation.setFillAfter (true); //保留在终止位置 * 虽然设置了保留在终止位置 但是如果点击取消 ,图片仍然会回到原来的位置 * 因为图片的属性是没有改变的 */ btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { translateAnimation.cancel(); //会立即取消一个正在执行的动画 } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
activity_main.xml
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_centerVertical="true" android:src="@drawable/ic_launcher" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/imageView1" android:layout_alignParentLeft="true" android:layout_marginBottom="76dp" android:layout_marginLeft="46dp" android:text="开始动画" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_marginLeft="26dp" android:layout_toRightOf="@+id/button1" android:text="取消动画" /> </RelativeLayout>
相关文章推荐
- Android 中Activity,Window和View之间的关系 - 2
- android 中的 window,view,activity具体关系
- Android笔记 - Binder之守护进程servicemanager
- Android学习笔记:Home Screen Widgets(2):关于Widget
- Android布局的基本方法
- 《Monkey Android》第14课ToggleButton和RatingBar
- 《Android源码设计模式解析与实战》读书笔记(十四)
- Android开发Camera常规应用
- Volley框架中ImageLoader源码分析
- android的照片浏览器(一)至返回所有图片文件
- android DrawerLayout
- Android笔记——Drawerlayout创建侧滑出菜单
- Android笔记——RecyclerView替代ListView
- Android笔记——Socket通信实现简单聊天室
- Android笔记——PreferenceActivity结合PreferenceFragment创建设置界面
- Android笔记——四大组件详解与总结
- Android笔记——导入Github开源项目CircleRefreshLayout
- Android笔记——简单解析XML
- Android Services组件
- Android系统服务一览表