Android有任何Image View过渡库吗?

时间:2015-10-05 07:19:16

标签: android android-animation slideshow android-transitions

我需要转换imageview,这是我自己很难做到的。在搜索了几个小时的预建库之后,我才发现了一些活动过渡&简单的淡入/淡出过渡。

我发现的是带有活动和viewflipper的材料动画:

https://github.com/lgvalle/Material-Animations https://androidmyway.wordpress.com/2012/10/30/slide-transition-in-viewflipper/

我需要的是竖条,溶解,爆炸和其他高级转换,如windows movie maker或jquery动画。

Car Dissolve transition

Car Vertical Bar transition

如果有任何预建的Android库这种东西,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:1)

  1. 从这里下载一组动画:

    ------> https://drive.google.com/folderview?id=0B_tCPatPrHgyWmNtWjM2X1ZiV1k&ddrp=1#

  2. 在你的android项目中,如果在Eclipse中工作,打开一个/ res文件夹,然后转到菜单:   文件>新>文件夹>给文件夹命名:“anim”。

  3. 将所有文件复制到此文件夹。只需从Windows资源管理器拖动它们即可。现在我们完成了准备工作并准备好使用下载的。

  4. 活动主屏幕包含一张图片。当点击发生时,图像开始动画,请参阅下面的代码示例:

  5. / * xml文件  *

    *文件结尾 * /

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.animation.Animation;
    import android.view.animation.AnimationUtils;
    import android.widget.ImageView;
    
    public class MainActivity extends Activity {
    ImageView image;
    
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        image = (ImageView) findViewById(R.id.imageView);
    
        image.setOnClickListener(new View.OnClickListener() {
    
          @Override
          public void onClick(View arg0) {
    
            image.startAnimation(selectanimation((int)(Math.random()*6))); //randomly select animation 0-5
          }
    
        });
    }
      private Animation selectanimation(int index) {
        switch(index){
        /*
         * create animations, and return them to caller. 
         */
        case 0: return new AnimationUtils().loadAnimation(this, R.anim.shake);
        case 1: return new AnimationUtils().loadAnimation(this, R.anim.fade);
        case 2: return new AnimationUtils().loadAnimation(this, R.anim.slide_left);
        case 3: return new AnimationUtils().loadAnimation(this, R.anim.wave_scale);
        case 4: return new AnimationUtils().loadAnimation(this, R.anim.hold);
        case 5: return new AnimationUtils().loadAnimation(this, R.anim.zoom_enter);
        }
        return null;
      }
    }
    

    在此下载完整的source code

答案 1 :(得分:1)

您应该尝试使用Android动画类编写自己的自定义动画。这是一个库链接,您可以根据需要进行研究和修改。它包含爆炸,折叠等动画。

https://github.com/2359media/EasyAndroidAnimations

对于你的问题,第一个动画有点困难。如上所示,它需要屏蔽完美的动画。如果您想要一些简单的提示,可以尝试使用下面的两个黑色图像。确保用黑色部分覆盖整个屏幕。然后向下移动一个图像,向右移动另一个图像以创建效果。

horizontal bar

vertical bar

第二个动画非常简单,您可以尝试下面的提示:

<framelayout>
     <imageview src="@drawable/car.jpg">
     <linearlayout 
         weightsum="9" 
         orientation="horizontal"><!--set it's width height to cover car image-->
        <imageview @+id="imgview1" 
           weight="1" src="@drawable/blackbar.jpg">
        <imageview @+id="imgview2"
           weight="1" src="@drawable/blackbar.jpg">
        .
        .
        <imageview @+id="imgview9"
           weight="1" src="drawable/blackbar.jpg">
     </linearlayout>
</framelayout>

在您的java代码中,尝试使用黑条动画。

 new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ScaleAnimation anim = new ScaleAnimation(1.0f, 0.0f, 1.0f, 1.0f, Animation.RELATIVE_TO_SELF,0.0f, Animation.RELATIVE_TO_SELF, 0.5f);
                    anim.setFillAfter(true);
                    anim.setDuration(400);
                    imgBlackBar1.startAnimation(anim);

                }
            });
        }
    }, 150);

现在,根据需要设置bar2 300,bar3 450等的延迟。