2014-09-26 5 views
1

Я хочу отображать около 150 кадров в 5 секунд (30 кадров в секунду) на экране Android. Все кадры хранятся в SdCard, откуда я загружался в Bitmap Arraylist. Для экс iToD Arraylist из Bitmap mBitmap (Bitmap Object)Отображение большого количества растровых изображений на ImageView за несколько секунд

for (int i=0;i<100;i++){ 
    mBitmap = iToD.get(i);  
    mImageView.setImageBitmap(mBitmap); 
} 

Но его не в состоянии вынести все кадры я хочу он должен иметь возможность оказывать все кадры .Giving мне какой-то эффект скольжения.

+0

в 'для loop', предел составляет 99 растровых изображений. –

+0

Это не сработает. Вам необходимо создать видеофайл и воспроизвести видео, используя «VideoView» – Budius

+0

использовать анимацию кадра в соответствии с вашими требованиями. – XtreemDeveloper

ответ

0

Вы должны использовать обработчик.

final int index = 0; 
final Handler handler = new Handler(); 
Runnable runnable = new Runnable() { 

    public void run() { 

     mImageView.setImageBitmap(iToD.get(index++)); 
     if(index != iToD.size()) { 
     handler.post(this); 

    } 

}; 
handler.post(runnable); 
0
   Hi, 

       Try this 

        AnimationDrawable animDrawable = new AnimationDrawable(); 


       // Create as many drawable as needed and add it to the AnimationDrawable. 

       for (int i=0;i<100;i++){ 
        mBitmap = iToD.get(i);  
        Drawable frame = new BitmapDrawable(b1); 
        animDrawable.addFrame(frame, 250); 
       } 

     //Then create an ImageView and set the background as the animationDrawable. 
     mImageView.setBackgroundDrawable(animDrawable); 

    Handler startAnimation = new Handler() { 
     public void handleMessage(Message msg) { 
     super.handleMessage(msg); 
     animDrawable.start(); 
     } 
    }; 


    //and call the handler as 

    Message msg = new Message(); 
    startAnimation.sendMessage(msg); 

For More information refer this link, 
http://smartandroidians.blogspot.in/2010/02/animation-through-bitmap.html