У меня есть ImageView
и 16 изображений. Я хочу изменить фоновое изображение в соответствии с этими изображениями. Я использовал Handler
, но результат не меняется плавно. Как я могу сделать изменение более гладким? Как вы думаете, AnimationDrawable
лучше? Это мой кодПериодически изменяйте изображение в образе и плавный андроид
private static int[] drawable_img_Array = { R.drawable.img01, R.drawable.img02,R.drawable.img03,R.drawable.img04,
R.drawable.img05, R.drawable.img06,R.drawable.img07,R.drawable.img08,
R.drawable.img09, R.drawable.img10,R.drawable.img11,R.drawable.img12,
R.drawable.img13, R.drawable.img14,R.drawable.img15};
final Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
if(i<drawable_img_Array.length) {
imgView.setImageResource(drawable_img_Array[i]);
i++;
} else {
i=0;
}
handler.postDelayed(this, 100);
}
}, 100);
Это мой второй способ использования AnimationDrawable
animation = new AnimationDrawable();
for (int j=0;j<drawable_ring_Array.length;j++)
{
animation.addFrame(getResources().getDrawable(drawable_img_Array[j]), 100);
}
animation.setOneShot(false);
ImageView imgView = (imgView) findViewById(R.id.img);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(400, 400);
params.alignWithParent = true;
params.addRule(RelativeLayout.CENTER_IN_PARENT);
imgView.setLayoutParams(params);
imgView.setImageDrawable(animation);
imgView.post(new Starter());
Вы пробовали 'ImageSwitcher'? Возможно, это будет служить для вашей цели. Взгляните на эти ссылки: [ссылка] (https://developer.android.com/reference/android/widget/ImageSwitcher.html) и [учебник] (http://www.tutorialspoint.com/android/android_imageswitcher.htm) – Joacer
Что значит «результат не меняется гладко»? Есть ли проблема с производительностью или вы просто хотите изменить ресурс представления с помощью анимации? –
Просто хотите изменить ресурс представления с помощью анимации и уменьшить задержку. Задержка делает изменение не гладким. Я думаю, что задержка - это загрузка изображения в цикле – Jame