zoukankan      html  css  js  c++  java
  • Android 常用动画小结

    1. 渐入动画

     // Request the next activity transition (here starting a new one).
                startActivity(new Intent(Animation.this, AlertDialogSamples.class));
                // Supply a custom animation.  This one will just fade the new
                // activity on top.  Note that we need to also supply an animation
                // (here just doing nothing for the same amount of time) for the
                // old activity to prevent it from going away too soon.
                overridePendingTransition(R.anim.fade, R.anim.hold);
    

      

    R.anim.fade和 R.anim.hold.如下:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
         Copyright (C) 2007 The Android Open Source Project
    
         Licensed under the Apache License, Version 2.0 (the "License");
         you may not use this file except in compliance with the License.
         You may obtain a copy of the License at
      
              http://www.apache.org/licenses/LICENSE-2.0
      
         Unless required by applicable law or agreed to in writing, software
         distributed under the License is distributed on an "AS IS" BASIS,
         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         See the License for the specific language governing permissions and
         limitations under the License.
    -->
    
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0" />
    

      

    <?xml version="1.0" encoding="utf-8"?>
    <!--
         Copyright (C) 2009 The Android Open Source Project
    
         Licensed under the Apache License, Version 2.0 (the "License");
         you may not use this file except in compliance with the License.
         You may obtain a copy of the License at
      
              http://www.apache.org/licenses/LICENSE-2.0
      
         Unless required by applicable law or agreed to in writing, software
         distributed under the License is distributed on an "AS IS" BASIS,
         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         See the License for the specific language governing permissions and
         limitations under the License.
    -->
    
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromXDelta="0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toXDelta="0" />
    

      

    2.快速进入动画

     // Request the next activity transition (here starting a new one).
                startActivity(new Intent(Animation.this, AlertDialogSamples.class));
                // This is a more complicated animation, involving transformations
                // on both this (exit) and the new (enter) activity.  Note how for
                // the duration of the animation we force the exiting activity
                // to be Z-ordered on top (even though it really isn't) to achieve
                // the effect we want.
                overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
    

      

    R.anim.zoom_enter 和 R.anim.zoom_exit 如下:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    /*
    ** Copyright 2009, The Android Open Source Project
    **
    ** Licensed under the Apache License, Version 2.0 (the "License"); 
    ** you may not use this file except in compliance with the License. 
    ** You may obtain a copy of the License at 
    **
    **     http://www.apache.org/licenses/LICENSE-2.0 
    **
    ** Unless required by applicable law or agreed to in writing, software 
    ** distributed under the License is distributed on an "AS IS" BASIS, 
    ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    ** See the License for the specific language governing permissions and 
    ** limitations under the License.
    */
    -->
    
    <!-- Special window zoom animation: this is the element that enters the screen,
         it starts at 200% and scales down.  Goes with zoom_exit.xml. -->
    <set xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/decelerate_interpolator">
        <scale android:fromXScale="2.0" android:toXScale="1.0"
               android:fromYScale="2.0" android:toYScale="1.0"
               android:pivotX="50%p" android:pivotY="50%p"
               android:duration="@android:integer/config_mediumAnimTime" />
    </set>
    

      

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    /*
    ** Copyright 2009, The Android Open Source Project
    **
    ** Licensed under the Apache License, Version 2.0 (the "License"); 
    ** you may not use this file except in compliance with the License. 
    ** You may obtain a copy of the License at 
    **
    **     http://www.apache.org/licenses/LICENSE-2.0 
    **
    ** Unless required by applicable law or agreed to in writing, software 
    ** distributed under the License is distributed on an "AS IS" BASIS, 
    ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    ** See the License for the specific language governing permissions and 
    ** limitations under the License.
    */
    -->
    
    <!-- Special window zoom animation: this is the element that exits the
         screen, it is forced above the entering element and starts at its
         normal size (filling the screen) and scales down while fading out.
         This goes with zoom_enter.xml. -->
    <set xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/decelerate_interpolator"
            android:zAdjustment="top">
        <scale android:fromXScale="1.0" android:toXScale=".5"
               android:fromYScale="1.0" android:toYScale=".5"
               android:pivotX="50%p" android:pivotY="50%p"
               android:duration="@android:integer/config_mediumAnimTime" />
        <alpha android:fromAlpha="1.0" android:toAlpha="0"
                android:duration="@android:integer/config_mediumAnimTime"/>
    </set>
    

      

    3. 中心渐变进入

         if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {

                            要有版本限制,低版本是不支持的。

                // Create a more complicated animation, involving transformations
                // on both this (exit) and the new (enter) activity.  Note how for
                // the duration of the animation we force the exiting activity
                // to be Z-ordered on top (even though it really isn't) to achieve
                // the effect we want.
                ActivityOptions opts = ActivityOptions.makeCustomAnimation(Animation.this,
                        R.anim.zoom_enter, R.anim.zoom_enter);
                // Request the activity be started, using the custom animation options.
                startActivity(new Intent(Animation.this, AlertDialogSamples.class), opts.toBundle());

    中心快速同理如上。

      

    中心缩放的2种形式:

     // Create a scale-up animation that originates at the button
                // being pressed.
                ActivityOptions opts = ActivityOptions.makeScaleUpAnimation(
                        v, 0, 0, v.getWidth(), v.getHeight());
                // Request the activity be started, using the custom animation options.
                startActivity(new Intent(Animation.this, AlertDialogSamples.class), opts.toBundle());
    有版本限制,如上。

      

    // Create a thumbnail animation.  We are going to build our thumbnail
                // just from the view that was pressed.  We make sure the view is
                // not selected, because by the time the animation starts we will
                // have finished with the selection of the tap.
                v.setDrawingCacheEnabled(true);
                v.setPressed(false);
                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);

    有版本限制,如上所示。

      

  • 相关阅读:
    CUDA实例练习(十二):矩阵相乘
    CUDA实例练习(十一):零拷贝内存
    CUDA实例练习(十):多个cuda流
    CUDA实例练习(九):页锁定主机内存
    CUDA实例练习(八):原子操作(直方图)
    算法实例(三):快速排序
    算法实例(二):冒泡排序
    算法实例(一):简单桶排序
    CUDA实例练习(七):点积运算
    CUDA实例练习(六):矢量求和
  • 原文地址:https://www.cnblogs.com/spring87/p/4497665.html
Copyright © 2011-2022 走看看