Frame Animated ImageView で現在のフレームを確認する必要がありますが、方法がわかりません。リソースは停止したアニメーションの現在のフレームであり、それ自体の画像ではないため、現在のフレームを取得する方法が見つかりません。 getImageResource() で Imageview の現在の画像を取得できません。
現在のフレームが何であるかを見つけるために何ができるか考えていますか?
編集:解決策は、自分のフレームアニメーションコードを書くことを意味しました:
アニメーションを開始するには、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();
}
}