android按顺序显示文件夹中的图像

时间:2017-04-29 10:10:25

标签: java android android-image

我有一个小问题。我有27张图片,文件名img0001高达img00027,如何按顺序播放?目前它播放img0001,img00010 - > img00019,img0002 - > img00027。

这是我在MainActivity.java中处理图像之间切换的原因:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) findViewById(R.id.imageView);

        Field[] drawables = R.drawable.class.getFields();
        for (Field f : drawables) {
            if (f.getName().contains("img"))
                imageArrayList.add(getResources().getIdentifier(f.getName(), "drawable", getPackageName()));
        }
    }


    protected void onStart() {
            super.onStart();
            final Handler handler = new Handler();
            Runnable runnable = new Runnable() {
                int i = 0;

                @Override
                public void run() {
                    imageView.setImageResource(imageArrayList .get(i));
                    Animation fade = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_intervals);
                    imageView.startAnimation(fade);
                    i++;
                    if (i > imageArrayList.size() - 1) {
                        i = 0;
                    }
                    handler.postDelayed(this, 4000); // for interval images
                }
            };
            handler.postDelayed(runnable, 8000); // for initial image
        }

任何帮助将不胜感激。我已经厌倦了只有9张图片,img0001-img0009并且工作正常。我觉得这是一个文件名问题,但不确定如何解决它。

1 个答案:

答案 0 :(得分:1)

正如您所说,这是一个文件名问题。文件按字母顺序排序,您应根据需要对imageArrayList进行排序。因此,实施Comparatorasked here)时,您还应该考虑this