After searching lot a lot i have finally found the solution, some of the threads related to same issue helped me out.
Quality Issue
Quality problems when resizing an image at runtime
I have followed the google's Tutorials for loading the bitmap and written my own function for scaling the bitmap.
public static Bitmap scaleDownBitmap(Bitmap original, boolean recycleOriginal, int newmaxWidth , int newmaxHeight){
        if(original == null)
             return null;
        Bitmap rtr= null;
        try{
                int origWidth  = original.getWidth();
                int origHeight = original.getHeight();
                if(origWidth <= newmaxWidth && origHeight <= newmaxWidth){
                        Bitmap b = Bitmap.createBitmap(original);
                        if (recycleOriginal && (original != b))
                            original.recycle();
                    return b;
                }
                int newWidth = 0;
                int newHeight = 0;
                float ratio;
                if(origWidth > origHeight){
                        ratio = (float)origWidth/(float)origHeight;
                        newWidth = newmaxWidth;
                        newHeight = (int)((float)newWidth/ratio);
                } 
                else{
                        ratio = (float)origHeight/(float)origWidth;
                        newHeight = newmaxHeight;
                        newWidth = (int)((float)newHeight/ratio);
                }
                rtr = CreateScaledBitmap(original , newWidth , newHeight);
                if(recycleOriginal && original != rtr)
                        original.recycle();
        }
        catch (Exception e) {
            Log.d("Image Compress Error", e.getMessage());
        }
        return rtr;
 }
     public static Bitmap CreateScaledBitmap(Bitmap paramBitmap, int paramInt1, int paramInt2)
   {
        Bitmap localBitmap = Bitmap.createBitmap(paramInt1, paramInt2, paramBitmap.getConfig());
        Canvas localCanvas = new Canvas(localBitmap);
        localCanvas.setDrawFilter(new PaintFlagsDrawFilter(0, 2));
        localCanvas.drawBitmap(paramBitmap, new Rect(0, 0, paramBitmap.getWidth(), paramBitmap.getHeight()),
                                            new Rect(0, 0, paramInt1, paramInt2), null);
    return localBitmap;
}
Now after getting the image i have passed the following parameters to the paint.
tempPaint.setFilterBitmap(true); //Line 1
canvas.drawBitmap(currentBitmap, m_matrix, tempPaint);