私が目指している目的は、アクティビティが開始されてから 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>