欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 运维知识 > android >内容正文

android

android实现蝴蝶动画,android中的动画具体解释系列——飞舞的蝴蝶 -ag凯发k8国际

发布时间:2024/10/14 android 38 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 android实现蝴蝶动画,android中的动画具体解释系列——飞舞的蝴蝶 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这一篇来使用逐帧动画和补间动画来实现一个小样例,首先我们来看看android中的补间动画。

android中使用animation代表抽象的动画类,该类包含以下几个子类:

alphaanimation:透明改变动画。

scaleanimation:大小缩放动画。

translateanimation:位移变化动画。

rotateanimation:旋转动画。

我们以下使用位移动画和逐帧动画来实现这个小样例。先看看执行效果:

蝴蝶挥动翅膀的逐帧动画文件:

android:oneshot="false">

界面布局文件:

>

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/background"

>

android:id="@ id/butterfly"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@anim/butteryfly"

/>

详细逻辑及位移动画:

package com.example.butteryfly;

import java.util.timer;

import java.util.timertask;

import android.app.activity;

import android.graphics.drawable.animationdrawable;

import android.os.bundle;

import android.os.handler;

import android.view.display;

import android.view.view;

import android.view.view.onclicklistener;

import android.view.animation.translateanimation;

import android.widget.imageview;

public class mainactivity extends activity {

private float curx = 0;

private float cury = 30;

private float nextx = 0;

private float nexty = 0;

private int windoww = 0;

private int windowh = 0;

private imageview imageview;

handler handler = new handler(){

public void handlemessage(android.os.message msg) {

if(msg.what == 0x123){

if(nextx > windoww || nexty > windowh){

curx = nextx = 0;

}else{

nextx = 8;

}

nexty = cury (float) (math.random() * 20 - 10);

translateanimation anim = new translateanimation(curx, nextx, cury, nexty);

curx = nextx;

cury = nexty;

anim.setduration(200);

imageview.startanimation(anim);

}

};

};

@override

protected void oncreate(bundle savedinstancestate) {

super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_main);

imageview = (imageview) findviewbyid(r.id.butterfly);

display display = getwindowmanager().getdefaultdisplay();

windoww = display.getwidth();

windowh = display.getheight();

final animationdrawable butterfly = (animationdrawable) imageview.getbackground();

imageview.setonclicklistener(new onclicklistener() {

@override

public void onclick(view arg0) {

butterfly.start();

new timer().schedule(new timertask() {

@override

public void run() {

handler.sendemptymessage(0x123);

}

}, 0, 200);

}

});

}

}

总结

以上是ag凯发k8国际为你收集整理的android实现蝴蝶动画,android中的动画具体解释系列——飞舞的蝴蝶的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图