Question: Just wondering what the fastest way is to draw a bitmap to canvas?

Currently I have a bitmap (and canvas for drawing) which i use to double buffer drawing calls, and then when i draw to canvas have a scrolling effect by applying a 1px canvas translation. This alone will reduce the framerate from 60+ FPS to ~40, quite a hit. Im not using surfaceView (or GLSurfaceView) at the moment but just wondering if im missing anything that would improve the speed. onDraw() code below

```
@Override
    public void onDraw(Canvas canvas)
    {
        //update fps text
        mFpsTracker.frameTouch();

        if(mBufferedBitmap == null)
        {
            mBufferedBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_4444);
            mBufferedCanvas = new Canvas(mBufferedBitmap);
        }

        paint.setColor(Color.BLUE);
        mBufferedCanvas.drawLine(0, getHeight(), getWidth(), getHeight(), paint);
        mBufferedCanvas.translate(0, -1);

    canvas.drawBitmap(mBufferedBitmap, 0, 0, null); 

    //draw fps
    mTextPaint.setColor(Color.WHITE);
    canvas.drawText(mFpsTracker.getFPSString(), 40, 40, mTextPaint);

    invalidate();       
}

```

Answer: 
I got same problem as yours, please tell me when you found some thing new.

This is what I founded so far:

1. For android version > 3 better not to use double buffer, because you are getting hardware acceleration(need to set true in manifest)
2. set [paint.setDither(true)](http://developer.android.com/reference/android/graphics/Paint.html#setDither%28boolean%29) it will work better on any device with different color then ARGB\_4444, witch are most of the devices. [Check this out for more info](http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/).
U need create your bitmap somewhere ( example onCreate or other place (constructor will be good)) because when u do scrolling effect you again and again created new bitmap. So just need create in constructor and than using this bitmap. 

it's good solution for me when i have similar problems. 
try created this `mBufferedBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_4444);` in other place where no invalidate .
hope it's help you.