0

我正在尝试从 sdcard 文件夹图像中一张一张地加载图像,并在几秒钟后使用处理程序,它们会自动更改但不会更改其他图像仅显示一张图像

在这里,我将用于获取和设置图像的处理程序代码放在创建活动中

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

在此之前从 Runnable 中删除 for 循环将始终显示 imageView 中的最后一个图像。而不是 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 回答