• 实现逐帧动画和补间动画两种动画效果


    1.逐帧动画(Frame Animation)
    通常在Android项目的res/drawable/目录下面定义逐帧动画的XML模板文件。编码的时候,需要在动画模板文件的<animation-list>标签中依次放入需要播放的图片,并设置好播放的间隔时间。

    <animation-list
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:oneshot="false">
    	<item android:drawable="@drawable/a001" android:duration="100"/>
    	<item android:drawable="@drawable/a002" android:duration="100"/>
    	<item android:drawable="@drawable/a003" android:duration="100"/>
    	<!-- (省略) -->
    </animation-list>
    

    注意:逐帧动画并不能独立使用,动画效果的显示还是要借助于ImageView图像控件。
    举例:(ImageView元素的id为m_image_view,上面的动画模板文件名为m_frame_animation)

    public class MainActivity extends Activity {
    
    	AnimationDrawable mAnimationDrawable;	
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		ImageView mImageView = (ImageView) findViewById(R.id.m_image_view);
    		mImageView.setBackgroundResource(R.drawable.m_frame_animation);
    		mAnimationDrawable = mImageView.getBackground();
    		mAnimationDrawable.start();
    	}
    
    	@Override
    	public void onPause() {
    		super.onPause();
    		mAnimationDrawable.stop();
    	}
    
    }
    

    2.补间动画(Tween Animation)
    逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充简便的动画效果来实现的。
    目前Android应用框架支持的补间动画效果有以下5种。具体实现在android.view.animation类库中。
    +AlphaAnimation:透明度(alpha)渐变效果,对应<alpha/>标签。
    +TranslateAnimation:位移渐变,需要指定移动点的开始和结束坐标,对应<translate/>标签。
    +ScaleAnimation:缩放渐变,可以指定缩放的参考点,对应<scale/>标签。
    +RotateAnimation:旋转渐变,可以指定旋转的参考点,对应<rotate/>标签。
    +AnimationSet:组合渐变,支持组合多种渐变效果,对应<set/>标签。
    补间动画的效果同样可以使用XML语言来定义,这些动画模板文件通常会被放在Android项目的res/anim/目录下。

    <set xmlns:android="http://schemas.android.com/apk/res/android"
    	android:interpolator="@android:anim/decelerate_interpolator">
    	<!-- 在1000ms(1秒)时间内,从透明度0(完全透明)变成1(不透明),同时由该元素中心位置从大小为0.1(十分之一)变成1(正常) -->
    	<alpha
    		android:fromAlpha="0.0"
    		android:toAlpha="1.0"
    		android:duration="1000" />
    	<scale
    		android:fromXScale="0.1"
    		android:toXScale="1.0"
    		android:fromYScale="0.1"
    		android:toYScale="1.0"
    		android:duration="1000"
    		android:pivotX="50%"
    		android:pivotY="50%"
    		android:startOffSet="100" />
    </set>
    

    举例:(ImageView元素的id为m_image_view,上面的动画模板文件名为m_tween_animation)

    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		ImageView mImageView = (ImageView) findViewById(R.id.m_image_view);
    		Animation mAnimation = AnimationUtils.loadAnimation(this, R.drawable.m_tween_animation);
    		mImageView.startAnimation(mAnimation);
    	}
    
    }
    
  • 相关阅读:
    jQuery radio的取值与赋值
    jquery 单击选中 再次选中取消选中
    jqweui 正在加载样式的用法
    html5 横向滑动导航栏
    关于css清除元素浮动的方法总结(overflow clear floatfix)
    JavaScript中常用的事件
    baiduMap试手《办理进京证和市区警察查询进京证的地址浏览》
    原生JavaScript常用本地浏览器存储方法五(LocalStorage+userData的一个浏览器兼容类)
    原生JavaScript常用本地浏览器存储方法四(HTML5 LocalStorage sessionStorage)
    原生JavaScript常用本地浏览器存储方法三(UserData IE Only)
  • 原文地址:https://www.cnblogs.com/loveflycforever/p/4909624.html
Copyright © 2020-2023  润新知