【问题标题】:are there any Image View transition library for android?是否有任何适用于 android 的图像视图转换库?
【发布时间】:2016-01-01 18:54:48
【问题描述】:

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

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

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

我需要的是竖条、溶解、分解和其他高级过渡,如 windows 电影制作器或 jquery 动画。

如果有此类东西的任何预构建的 android 库,请告诉我。谢谢!

【问题讨论】:

  • @Karan Mer 感谢您的链接,但我没有找到我真正需要的东西
  • 如果您对此有任何想法或链接,请在评论中分享!
  • @MayurR.Amipara 直到现在我还没有找到任何这样的转换,如果我找到了我会分享的

标签: android android-animation slideshow android-transitions


【解决方案1】:
  1. 从这里下载一组动画:

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

  2. 在您的 android 项目中,如果在 Eclipse 中工作,请打开 /res 文件夹,然后转到菜单: file>new>folder> 为文件夹命名:“anim”。

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

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

/*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

【讨论】:

  • 感谢您的回答,我浏览了所有这些动画,但找不到我真正想要的内容
  • @AndroidEnthusiastic , dilz 还给出了他想要的样张图片,他正在寻找,javagraphics.blogspot.in/2007/04/…
【解决方案2】:

您应该尝试使用 android 动画类编写自己的自定义动画。这是一个图书馆链接,您可以根据需要学习和修改。它包含爆炸、折叠等动画。

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

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

第二个动画很简单,你可以试试下面的提示:

<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 等设置延迟。

【讨论】:

  • 对于第二个动画,您的解决方案确实对我有用,非常感谢,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 2014-07-08
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多