zoukankan      html  css  js  c++  java
  • ApiDemos示例学习(2)——App->Activity->Animation

    现在介绍一下com.example.android.app包下的Animation示例。

    关键类及函数:

    ActivityOption

    overridePendingTransition()

    makeCustomAnimation()makeThumbnailScaleUpAnimation

    该示例定义了六种动画:

    (1)       Fade in,新出现的Activity由浅入深逐渐出现;

    (2)       Zoom in,新出现的Activity由大到小逐渐出现;

    (3)       Modern fade in,新出现的Activity由浅入深逐渐出现(系统版本大于JELLY_BEAN);

    (4)       Modern zoom in,新出现的Activity由大到小逐渐出现(系统版本大于JELLY_BEAN);

    (5)       Scale up,新出现的Activity由小到大逐渐出现(系统版本大于JELLY_BEAN);

    (6)       Thumbnail zoom,先出现的Activity在点击的地方有小到大出现(系统版本大于JELLY_BEAN);

    以上(2)—(6)要求版本在JELLY_BEAN以上;

    Android中Animation分为以下两种:

    (1)       Frame Animation,帧动画,由一组图像顺序显示显示动画;

    (2)       Tween Animation,渐变动画动画,对单个可以附加动画的对象进行各种变化来实现动画;

    在android-16对应的ApiDemos示例中,其中:

    (1)-(2)附加动画方式:

           overridePendingTransition(int enterAnim, int exitAnim)

                  参数

           enterAnim:对应于进入Activity的动画资源Id;

           exitAnim:对应于离开Activity的动画资源Id;

    (3)-(5)附加动画方式:

           makeCustomAnimation(Context context, int enterResId, int exitResId)

                  说明

                  Create an ActivityOptions specifying a custom animation to run when the activity is displayed.

                  参数

           enterAnim:对应于进入Activity的动画资源Id;

           exitAnim:对应于离开Activity的动画资源Id;

    (6)附加动画方式:

    v.setDrawingCacheEnabled(true);//开启缓存,如果其后调用了getDrawable(),将在

    //Bitmap中绘制View

    v.setPressed(false);                                      //确保在动画开启之前未被Pressed

    v.refreshDrawableState();

    Bitmap bm = v.getDrawingCache();

    Canvas c = new Canvas(bm);

    c.drawARGB(255, 255, 0, 0);

    ActivityOptions opts = ActivityOptions.makeThumbnailScaleUpAnimation(v, bm, 0, 0);

    // Request the activity be started, using the custom animation options.

    startActivity(new Intent(Animation.this, AlertDialogSamples.class), opts.toBundle());

    v.setDrawingCacheEnabled(false);

             makeThumbnailScaleUpAnimation(View source, Bitmap thumbnail, int startX, int startY),该函数的详细说明参见官方文档

     

    <set> 为其它animation类型<alpha>,<scale>,<translate>和<rotate>或其它<set>的容器。

    android:interpolator 为Interpolator资源ID,Interpolator定义了动画的变化速率,动画的各帧的显示可以加速,减速,重复显示。

    android:shareInterpolator 如果想为<set>中的各个子动画定义共享interpolator,shareInterpolator 则设为true.

    <alpha> 定义Fade in ,Fade out 动画,其对应的Android类AlphaAnimation,参数由fromAlpha,toAlpha定义。

    <scale>定义缩放动画,其对应的Android类为ScaleAnimation,参数由fromXScale,toXScale,fromYScale,toYScale,pivotX,pivotY定义,pivotX,pivotY定义了缩放时的中心。

    <translate>定义平移动画,其对应的Android类为TranslateAnimation,参数由fromXDelta,toXDelta,fromYDelta,toYDelta定义。

    <rotate>定义选择动画,其对应的Android类RotateAnimation,参数由fromDegrees,toDegrees,pivotX,pivotY, pivotX,pivotY定义选择中心。

     

     

    动画文件的定义比较简单,就不赘述了!

    (PS:该示例运行的效果图会尽快补上)

     

    Ok,差不多了!

  • 相关阅读:
    北京燃气IC卡充值笔记
    随机分析、随机控制等科目在量化投资、计算金融方向有哪些应用?
    量化交易平台大全
    Doctor of Philosophy in Computational and Mathematical Engineering
    Institute for Computational and Mathematical Engineering
    Requirements for the Master of Science in Computational and Mathematical Engineering
    MSc in Mathematical and Computational Finance
    万字长文:详解多智能体强化学习的基础和应用
    数据处理思想和程序架构: 使用Mbedtls包中的SSL,和服务器进行网络加密通信
    31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)
  • 原文地址:https://www.cnblogs.com/rainmonth/p/3599536.html
Copyright © 2011-2022 走看看