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;
}
输出:
我已经在 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);---> 随机比例。
谢谢大家的帮助。
我想拍摄一个包含蝴蝶 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;
}
输出:
我已经在 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);---> 随机比例。
谢谢大家的帮助。