Мы можем воспользоваться Imageview setImageResource, так как это будет эффективнее, чем кажется рисованным, см. Ниже код для того же.
Приведенный ниже код может быть использован для показа изображения в формате GIF, если у вас есть несколько splitизображение GIF.Просто разделите gif-файл на отдельные png из онлайн-инструмента и поместите изображение в рисованный объект, как показано ниже:
image_1.png, image_2.png и т. Д.
У обработчика для изменения изображениядинамически.
int imagePosition = 1;
Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
updateImage();
}
};
public void updateImage() {
appInstance.runOnUiThread(new Runnable() {
@Override
public void run() {
int resId = getResources().getIdentifier("image_" + imagePosition, "drawable", appInstance.getPackageName());
gifImageViewDummy.setImageResource(resId);
imagePosition++;
//Consider you have 30 image for the anim
if (imagePosition == 30) {
//this make animation play only once
handler.removeCallbacks(runnable);
} else {
//You can define your own time based on the animation
handler.postDelayed(runnable, 50);
}
//to make animation to continue use below code and remove above if else
// if (imagePosition == 30)
//imagePosition = 1;
// handler.postDelayed(runnable, 50);
//
}
});
}