2

私は 5 秒ごとに背景画像を変更したい Android アプリケーションに取り組んでいます。drawable フォルダにすべての画像があります。

使用しているコードを提供していますが、出力が得られません。出力として、変化していない静止画像を取得しています。

助けてください

ありがとう

[コード]

public class Home extends Activity {

public static int count=0;
int[] drawablearray=new int[]{R.drawable.slider_1,R.drawable.slider_2,R.drawable.slider_3,R.drawable.slider_4,R.drawable.slider_5};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    new Handler().postDelayed(new Runnable() {
        public void run() {

           if(count<drawablearray.length){

               Home.this.getWindow().
                   setBackgroundDrawableResource(drawablearray[count]);
               count++;  //<<< increment counter here
            }
           else{
              // reset counter here
              count=0;
            }

          }
      }, 5000);
}
}
4

4 に答える 4

1

タイマーを使用してこれを実現できます

public class Home extends Activity {

public static int count=0;
int[] drawablearray=new int[]{R.drawable.slider_1,R.drawable.slider_2,R.drawable.slider_3,R.drawable.slider_4,R.drawable.slider_5};
Timer _t;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    lnMain = (LinearLayout) findViewById(R.id.lnMain);
        _t = new Timer();
        _t.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {

                runOnUiThread(new Runnable() // run on ui thread
                {
                    public void run() {
                        if (count < drawablearray.length) {

                            lnMain.setBackgroundDrawable(drawablearray[count]);
                            count = (count + 1) % drawablearray.length;
                        }
                    }
                });
            }
        }, 5000, 5000);
}
}
于 2013-11-22T08:14:41.820 に答える
0

ViewFlipper クラスを見てみませんか http://developer.android.com/reference/android/widget/ViewFlipper.html

于 2013-06-25T09:40:05.033 に答える
0
final Handler h = new Handler();
Runnable r = new Runnable() {
    public void run() {    
       Home.this.getWindow().setBackgroundDrawableResource(drawablearray[count]);
       count += (count+1)%drawablearray.length;  //<<< increment counter here
       h.postDelayed(this, 5000);    
    }
 };

今のように呼び出します

h.postDelayed(r, 5000);
于 2013-06-25T09:37:51.743 に答える