我的目的是,在我的活动开始 2 秒后,一个 ImageView(带有图像)应该飞入视图。但是使用以下代码没有任何反应。
我是在正确的道路上还是我可以完全不同地解决这个问题?我必须改变什么才能使它起作用?
这是我的代码的外观:
public class Main extends Activity {
private ImageView _truck;
private Handler _flyInTruckHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_truck = (ImageView) findViewById(R.id.main_garbageTruck);
_truck.setVisibility(View.INVISIBLE);
_flyInTruckHandler = new Handler() {
public void handleMessage(Message msg) {
_truck.setVisibility(View.VISIBLE);
}
};
_flyInTruckHandler.postDelayed(new Runnable() {
public void run() {
new flyInTruck();
}
}, 2000);
}
class flyInTruck extends TimerTask {
@Override
public void run() {
Animation anim = AnimationUtils.loadAnimation( getApplicationContext(), R.anim.flyin);
findViewById(R.id.main_garbageTruck).setAnimation(anim);
_flyInTruckHandler.sendEmptyMessage(0);
anim.start();
}
}
}
我使用的动画来自这里:Fly In Animation for a GridView 但略有改变:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true" >
<scale
android:duration="2500"
android:fillAfter="false"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>