バナー スイッチャーとしてモバイル アプリに収まるように ImageSwitcher を構築しています。現在、ハンドラーを使用してバナーをローテーションし、ランナブルを 7 秒 (正確には 7000 ミリ秒) 遅らせていますが、2 つの画像間のより派手なトランジション効果が必要です。私はこれを参考にしていますが、そうするのに恐ろしい時間を過ごしています。その背後にある概念は理解していますが、ギャラリー部分を完全に切り取り、ImageSwitch トランジションを使用するために必要なハンドラーのみを使用したいと考えています。
これは、画像切り替えのコードです。
private Runnable updateBannerRun = new Runnable(){
public void run() {
if (bannerQueue > 3){
bannerQueue = 1;
} else {
bannerQueue ++;
}
ImageView i = (ImageView)findViewById(R.id.imageView1);
switch (bannerQueue){
case 1:
i.setImageResource(R.drawable.image1);
break;
case 2:
i.setImageResource(R.drawable.image2);
break;
case 3:
i.setImageResource(R.drawable.image3);
break;
case 4:
i.setImageResource(R.drawable.image4);
break;
}
updateBanner();
}
};
これはハンドラのコードです:
public void updateBanner(){
mHandler.postDelayed(updateBannerRun, 7000);
}
私の最大の問題は、それを実行すると nullPointException が返されることです。
どんな助けでも大歓迎です。