我有一个小问题。我有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并且工作正常。我觉得这是一个文件名问题,但不确定如何解决它。
答案 0 :(得分:1)
正如您所说,这是一个文件名问题。文件按字母顺序排序,您应根据需要对imageArrayList
进行排序。因此,实施Comparator
(asked here)时,您还应该考虑this。