安卓动画学习(七) --帧动画

安卓动画学习 --帧动画

  • 这篇来看看帧动画
  • 他主要是通过播放一系列的图片来达到视觉上的动画效果

帧动画实现方法

xml实现

  • res/drawable下新建xml文件
 <animation-list android:id="@+id/selected" android:oneshot="false">
    <item android:drawable="@drawable/wheel0" android:duration="50" />
    <item android:drawable="@drawable/wheel1" android:duration="50" />
    <item android:drawable="@drawable/wheel2" android:duration="50" />
    <item android:drawable="@drawable/wheel3" android:duration="50" />
    <item android:drawable="@drawable/wheel4" android:duration="50" />
    <item android:drawable="@drawable/wheel5" android:duration="50" />
 </animation-list>
  • xml属性
  • animation-list结点属性
 android:oneshot //如果为true,则动画将只运行一次然后停止。 
 android:variablePadding //如果为true,则允许绘制的填充根据所选的当前状态进行更改。 
 android:visible //提供drawable的初始可见性状态; 默认值是false 
  • item 属性

··· android:drawable //图片资源 android:duration //显示此帧的时间量(以毫秒为单位)。 ···

  • 代码中引用
 ImageView img =ImageViewfindViewByIdR.id.spinning_wheel_image; 
 img.setBackgroundResourceR.drawable.spin_animation; 
 AnimationDrawable frameAnimation =AnimationDrawableimg.getBackground(); 

 frameAnimation.start();
 
 -----或者----
 
 AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable(  
                R.drawable.frame_anim);  
imageView.setBackground(animationDrawable);  
frameAnimation.start();
 

代码实现

AnimationDrawable animationDrawable = new AnimationDrawable();  
    // AnimationDrawable添加动画帧  
animationDrawable.addFrame(  
        getResources().getDrawable(R.drawable.img00), 50);  
animationDrawable.addFrame(  
        getResources().getDrawable(R.drawable.img01), 50); 
imageView.setBackground(animationDrawable);  
animationDrawable.start();
  • 第一个为图片资源,第二个为当前图片显示的时间

相关方法

方法名 用法
int getDuration(int i) 获取i序号的图片显示时间
Drawable getFrame(int index) 获取index序号的图片
int getNumberOfFrames() 获取数目
boolean isOneShot() 是否单次显示
boolean isRunning() 是否正在播放
void setOneShot(boolean oneShot) 设置是否单次显示
boolean setVisible(boolean visible, boolean restart) 设置初始状态是否可见
void start() 从0开始
void stop() 在当前帧停止

完毕,没啥说的了,简单

猜你喜欢

转载自blog.csdn.net/asffghfgfghfg1556/article/details/80457302