Tengo un leve problema. Tengo 27 imágenes, con nombres de archivo img0001 hasta img00027, ¿cómo hago para que se reproduzcan en secuencia? Como actualmente reproduce img0001, img00010 -> img00019, img0002 -> img00027.
Esto es lo que tengo en MainActivity.java para manejar el cambio entre imágenes:
@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 }Cualquier ayuda sería apreciada. Me he cansado con solo 9 imágenes, img0001-img0009 y funciona bien. Siento que es un problema de nombre de archivo, pero no estoy seguro de cómo solucionarlo.
Como dijiste, es un problema de nombre de archivo. Los archivos se ordenan alfanuméricamente, debe ordenar imageArrayList según sus necesidades. Por lo tanto, al implementar un Comparator ( preguntado aquí ), también debe considerar esto .