帧动画_补间动画
来源:互联网 发布:九仙图翅膀进阶数据 编辑:程序博客网 时间:2024/05/21 08:40
帧动画
Frame动画,即顺序播放事先做好的图像,跟放胶片电影类似
XML创建
1.首先在res下创建一个xml 修改根节点为Animation_List
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/a" android:duration="1000"/> <item android:drawable="@drawable/c" android:duration="1000"/> <item android:drawable="@drawable/d" android:duration="1000"/> <item android:drawable="@drawable/e" android:duration="1000"/></animation-list>
2.在ManiActivity中
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView mImage; /** * 开始 */ private Button mButStart; /** * 停止 */ private Button mButStop; private LinearLayout mActivityMain; private AnimationDrawable background; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); mImage.setBackgroundResource(R.drawable.frame); background = (AnimationDrawable) mImage.getBackground(); } private void initView() { mImage = (ImageView) findViewById(R.id.image); mButStart = (Button) findViewById(R.id.butStart); mButStart.setOnClickListener(this); mButStop = (Button) findViewById(R.id.butStop); mButStop.setOnClickListener(this); mActivityMain = (LinearLayout) findViewById(R.id.activity_main); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.butStart: background.start(); break; case R.id.butStop: if(background.isRunning()){ background.stop(); } break; } }}3还有一些方法.
onShot();是否只播放一次
isRunning()是否正在播放
/****************************动态代码实现**********************************/
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView mImage; /** * 开始 */ private Button mButStart; /** * 停止 */ private Button mButStop; private AnimationDrawable drawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); drawable = new AnimationDrawable(); drawable.addFrame(getResources().getDrawable(R.drawable.a),1000); drawable.addFrame(getResources().getDrawable(R.drawable.c),1000); drawable.addFrame(getResources().getDrawable(R.drawable.d),1000); drawable.addFrame(getResources().getDrawable(R.drawable.e),1000); drawable.setOneShot(false); mImage.setBackground(drawable); } private void initView() { mImage = (ImageView) findViewById(R.id.image); mButStart = (Button) findViewById(R.id.butStart); mButStart.setOnClickListener(this); mButStop = (Button) findViewById(R.id.butStop); mButStop.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.butStart: drawable.start(); break; case R.id.butStop: if(drawable.isRunning()){ drawable.stop(); } break; } }}
补间动画
Tween动画,通过对View的内容进行一系列的图形变换,(包括平移,缩放,旋转,改变透明度)来实现动画效果.
动画效果的定义可采用xml或代码编写.
Alpha 淡入淡出效果 Scale缩放效果 Rotate 旋转效果 Translate位移
XML实现
首先创建一个文件夹R.anim.set 根节点
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="3000"> <alpha android:fromAlpha="1" android:toAlpha="0"/> <rotate android:fromDegrees="0" android:pivotX="0.5" android:pivotY="0.5" android:toDegrees="360"/> <scale android:pivotY="0.5" android:pivotX="0.5" android:fromXScale="1" android:fromYScale="1" android:toXScale="2" android:toYScale="2"/> <translate android:fromXDelta="80%p" android:fromYDelta="80%p" android:toXDelta="0" android:toYDelta="0"/></set>
代码
animation = AnimationUtils.loadAnimation(this, R.anim.set);mImage.startAnimation(animation);值得一提的是在xml里%代表自身 p代表父控件
至于动态代码实现则是new 参数也是差不多.
阅读全文
0 0
- 帧动画_补间动画
- Android动画_补间动画
- android--(动画1_动画补间动画和帧动画)
- 补间动画,帧动画
- 补间动画,帧动画
- android动画 -- 帧动画 补间动画
- 属性动画,补间动画,帧动画
- Android动画-帧动画&补间动画
- 帧动画、补间动画、属性动画
- 帧动画&补间动画&属性动画
- 属性动画、帧动画、补间动画
- Android基础_帧动画 补间动画 属性动画(十一)
- android动画_补间动画_代码方式
- 动画----补间动画
- android中的动画:帧动画、补间动画、属性动画
- Android动画:帧动画、补间动画、属性动画
- Aandrod动画、属性动画、帧动画、补间动画
- 补间动画、属性动画、帧动画、矢量动画
- 以故事的方式让你理解Java(一)
- 【leetcode】657. Judge Route Circle
- 手把手教你制作Excel抽奖器
- Unity3d二 如何打开unity3d工程
- 如何在eclipse中将很多散乱jar包整合在一起
- 帧动画_补间动画
- 剑指offer面试12 打印1到最大的n位数
- 8.15 D
- java支付宝实例
- 设计模式之动态代理模式
- Spark的数据倾斜和解决办法
- 梯度测试
- webuploader简单使用
- openssl生成https证书