Мне нужно проверить текущий кадр в Frame Animated ImageView, но я не вижу пути, как это сделать. Я не могу найти метод для получения текущего кадра и не могу получить текущее изображение Imageview с помощью getImageResource (), потому что ресурс является текущим кадром остановленной анимации, а не изображением, которым он является сам.
Есть идеи, что я могу сделать, чтобы найти текущий кадр?
EDIT:
Решение закончилось тем, что я написал свой собственный код анимации Frame:
Чтобы запустить анимацию, вызовите downDown ();
Чтобы остановить анимацию, установите go = false;
Логическое «go», строка «most_recent» и обработчик «mHandlerDown» объявлены глобально.
mHandler = new Handler();
private void downDown(){
if(go ==true){
Runnable updateTask = new Runnable() {
public void run() {
ImageView lid = (ImageView)findViewById(R.id.lid); // the Imageview that will be animated
if (most_recent =="l1"){ //this loop checks the most recent frame updates with the next
lid.setImageResource(R.drawable.l2);
most_recent="l2";
} else if (most_recent =="l2"){
lid.setImageResource(R.drawable.l3);
most_recent="l3";
} else if (most_recent =="l3"){
lid.setImageResource(R.drawable.l4);
most_recent="l4";
} else if (most_recent =="l4"){
lid.setImageResource(R.drawable.l5);
most_recent="l5";
} else if (most_recent =="l5"){
lid.setImageResource(R.drawable.l6);
most_recent="l6";
} else if (most_recent =="l6"){
lid.setImageResource(R.drawable.l7);
most_recent="l7";
} else if (most_recent =="l7"){
lid.setImageResource(R.drawable.l8);
most_recent="l8";
} else if (most_recent =="l8"){
lid.setImageResource(R.drawable.l9);
most_recent="l9";
} else if (most_recent =="l9"){
lid.setImageResource(R.drawable.l10);
most_recent="l10";
} else if (most_recent =="l10"){
lid.setImageResource(R.drawable.l11);
most_recent="l11";
} else if (most_recent =="l11"){
lid.setImageResource(R.drawable.l12);
most_recent="l12";
}else if (most_recent == "l12"){
lid.setImageResource(R.drawable.l13);
most_recent="l13";
}
downDownCall();
}
};
mHandlerDown.removeCallbacks(updatetask);
mHandlerDown.postDelayed(updateTask, 40);
}
}
private void downDownCall(){
if(go== true){
downDown();
}
}