Как загружать изображения с SD-карты и запускать анимацию с помощью AnimationDrawable или AnimationUtils в Android

У меня есть изображения, хранящиеся на SD-карте, и с их помощью я хочу запустить анимацию. Я использую для этого следующий код, но моя анимация вообще не работает.

Фрагмент кода

playAnimation("xxx", medid, 25);//calling method
break;

public void playAnimation(String string, int medid2, int length) {
        // TODO Auto-generated method stub
        animation = new AnimationDrawable();
        Bitmap bitMap;
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inSampleSize = 2; //reduce quality
        player = MediaPlayer.create(this.getApplicationContext(), medid2);
        try {
            for (int i = 0; i <= length; i++) {
                System.out.println("File Name : - " + Environment.getExternalStorageDirectory().toString() + "/" + string + i);
                bitMap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().toString() + "/" + string + i);
                Drawable bmp = new BitmapDrawable(bitMap);
                animation.addFrame(bmp, DURATION);
            }
            animation.setOneShot(true);
            animation.setVisible(true, true);
            int frames = animation.getNumberOfFrames();
            System.out.println("Number of Frames are - " + frames);
            img.setBackgroundDrawable(animation);
            img.post(new Starter());

        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

class Starter implements Runnable {
        public void run() {
            try {
                if(animation.isRunning()) {
                    animation.stop();
                    animation.start();
                    if (player.isPlaying()) {
                        player.stop();
                        player.start();
                    }
                    else {
                        player.start();
                    }
                } else {
                    animation.start();
                    if (player.isPlaying()) {
                        player.stop();
                        player.start();
                    }
                    else {
                        player.start();
                    }
                }
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    }

Используя концепцию покадровой анимации, мне нужно запустить анимацию.Я могу получать изображения, поскольку я выполнил некоторую отладку, но когда я нажимаю кнопку и вызываются эти методы, мой экран не отображает никакой анимации. Отображается только черный экран. Я не получаю никаких сообщений об ошибках. Если у кого-то есть идеи, пожалуйста, дайте мне знать.

Спасибо

9
задан Scorpion 6 February 2012 в 03:36
поделиться