Ruhi
Ruhi

Reputation: 21

Flickering of bitmap on canvas in android

How to avoid image flickering when drawing on canvas. Below code keep on running for images.The next image comes sliding from top but the previous image keep on flickering at back.I just want the previous image to become static.

void drawscreen()
{
    SurfaceHolder holder = getSurfaceHolder();
    try
    {
        Backgroundcanvas = holder.lockCanvas();
        if (Backgroundcanvas != null)
        {
            if (top == true)
            { slide_from_top(); }
        }
    }
    finally
    {
        if (Backgroundcanvas != null)
            holder.unlockCanvasAndPost(Backgroundcanvas);
    }

    mHandler.removeCallbacks(mUpdateDisplay);
    if (mVisible && count)
    {
        mHandler.postDelayed(mUpdateDisplay, interval);
        count = false;
    }
    else
    {
        mHandler.postDelayed(mUpdateDisplay, 100);
    }
}

Upvotes: 2

Views: 1591

Answers (2)

Scarecrow
Scarecrow

Reputation: 4137

I was also getting same problem, image flickering when drawing on canvas .

What I have done is making my worker thread(Not UI Thread) sleep for 10mlsec every time after using canvas drawing, and this time flickering is gone,

You can try this trick...

Upvotes: 4

Androider
Androider

Reputation: 2804

Clear canvas after each thread ends.

Just call Canvas.drawColor(Color.BLACK), or whatever color you want to clear your Canvas with.

Upvotes: 0

Related Questions