Imageview 上的蝴蝶动画 Android

Butterfly animation on Imageview Android

我想拍摄一个包含蝴蝶 png 的 Imageview 并将其设置为动画,这样看起来就像蝴蝶在动它的翅膀一样。

如何使用 Android 原生动画获得这种效果?

使用Glide简单示例:

ImageView iView = (ImageView) findViewById(R.id.test_image);
if (iView != null)
Glide.with(this).load("http://i.imgur.com/1ALnB2s.gif").asGif().into(iView);

详细示例

// For a simple view:
@Override public void onCreate(Bundle savedInstanceState) {
  ...
  ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

  Glide.with(this).load("http://some image link").into(imageView);
}

// For a simple image list:
@Override public View getView(int position, View recycled, ViewGroup container) {
  final ImageView myImageView;
  if (recycled == null) {
    myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false);
  } else {
    myImageView = (ImageView) recycled;
  }

  String url = myUrls.get(position);

  Glide
    .with(myFragment)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.loading_spinner)
    .crossFade()
    .into(myImageView);

  return myImageView;
}

输出:

GitHub Link

Wiki Link

我已经在 iOS 中完成了,所以你需要用计时器放大和缩小它。

成功了,这就是我所做的,首先我使用 Glide 加载我的 img,然后我创建了一个动画,如下所示:

final ScaleAnimation growanim = new ScaleAnimation(1.0f, randscale), 1.0f, 1.0f, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        growanim.setDuration(randomDuration);
        growanim.setRepeatCount(-1);
        growanim.setRepeatMode(Animation.REVERSE);
        growanim.setInterpolator(new AccelerateInterpolator());
        img.setAnimation(growanim);
        growanim.start();

randomDuration = random.nextInt(2000 - 100 + 1) + 100l); --> 随机时间。 randscale = random.nextFloat()*0.5f)+0.3f);---> 随机比例。

谢谢大家的帮助。