我有一些控件,我不希望用户一直看到,所以他们需要:
我已经看过很多动画实现(包括Thread
,Handler
和Animation
)。在这种情况下哪种方法最有效?
答案 0 :(得分:2)
这里我包含了我在项目中完成的代码。请检查一下。它可能对你有帮助。
Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in);
Animation animationFadeOut = AnimationUtils.loadAnimation(this, R.anim.fade_out);
handler = new Handle(this);
animator = new Thread() {
public void run() {
try {
handler.sendMessage(handler.obtainMessage(1));
sleep(2000);
handler.sendMessage(handler.obtainMessage(2));
sleep(2000);
handler.sendMessage(handler.obtainMessage(3));
} catch (Exception e) {
e.printStackTrace();
}
}
};
animator.start();
static class Handle extends Handler {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.what == 1) {
iv.startAnimation(animationFadeIn);
} else if (msg.what == 2) {
} else if (msg.what == 3) {
iv.startAnimation(animationFadeOut);
}
super.handleMessage(msg);
}
}
答案 1 :(得分:1)
使用以下代码进行淡入和淡出。
<强> fade_in.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<alpha
android:duration="1000"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />
</set>
<强> fade_out.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<alpha
android:duration="1000"
android:fromAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="0.0" />
</set>
快乐的编码!!