0

SDカードフォルダーの画像から画像を1つずつロードしようとしていますが、数秒後にハンドラーを使用すると、自動的に変更されますが、他の画像は変更されず、画像が1つしか表示されません

ここでは、作成アクティビティでイメージを取得および設定するためのハンドラー コードを配置します。

HomeActivity.java

final Handler imagehandler = new Handler();

                    Runnable runnable;

                    runnable = new Runnable()
                    {

                        int i=0;
                        @SuppressLint("SdCardPath")
                        public void run()
                        {   // slider image run




                            File dir = new File("/mnt/sdcard/images/");
                            File file[]=dir.listFiles();

                            for (int i=0;i<file.length;i++)
                            {

                                Drawable d = (Drawable) Drawable.createFromPath(file[i].toString());
                                imageslider.setImageDrawable(d);
                                imagehandler.postDelayed(this, 4000);



                          // for interval
                        }

                    };
                    imagehandler.postDelayed(runnable,10);
           } 
4

1 に答える 1

0

これがimageViewの最後の画像を常に表示する前に、Runnableからforループを削除します。forループの代わりに、次のような画像を表示するためのカウンターを使用します。

 File dir = new File("/mnt/sdcard/images/");
 File file[]=dir.listFiles();

public static int count=0;
new Handler().postDelayed(new Runnable() {
                public void run() {

                     if(count<file.length){

                       Drawable d = (Drawable) 
                           Drawable.createFromPath(file[count].toString());

                       imageslider.setImageDrawable(d);

                        count++;  //<<< increment counter here
                     }
                    else{
                          // reset counter here
                          count=0;
                     }

                }
            }, 4000);
于 2013-02-05T06:29:35.043 に答える