在画布上显示位图时出现问题

时间:2011-08-04 14:34:19

标签: android

我有一些位图,我想一个接一个地连续显示,但我的代码只显示最后一个位图。任何人都告诉我为什么会发生这种情况? 这是代码

类Panel扩展了SurfaceView实现的SurfaceHolder.Callback {

    private boolean _run = false;

    public Panel(Context context) {

        super(context);

        getHolder().addCallback(this);

        _run = true;

    }

    @Override
    public void onDraw(Canvas canvas) {



    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

        Log.i("Read","surfaceChanged is called");
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {

        Log.i("Read","surfaceCreated is called");

        while (_run ) {

            display();
        }


    }

    public void display() {

        Canvas c;

        c = null;

        try {

            c = getHolder().lockCanvas(null);

            synchronized (getHolder()) {

                onPreviewFrame();

                invalidate();

                c.drawColor(Color.BLACK);

                c.drawBitmap(bmp, 10, 10, null);

                //panel.surfaceDestroyed(panel.getHolder());
            }

        } finally {

            if (c != null) {

                getHolder().unlockCanvasAndPost(c);
            }

        }


    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {

        Log.i("Read","surfaceDestroyed is called");

        _run = false;


    }

  }

1 个答案:

答案 0 :(得分:0)

我不确定您的要求是什么,但是如果您正在尝试创建连续的水平图像滚动。看看这个 https://github.com/blessenm/SlideshowDemo