2

バナー スイッチャーとしてモバイル アプリに収まるように 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 が返されることです。

どんな助けでも大歓迎です。

4

1 に答える 1

2

あなたはsetFactory()電話に出られません。

私のブログ投稿を確認してください: Android のヒント: TextSwitcher と ImageSwitcher

于 2011-04-18T20:27:32.020 に答える