2D Graphics Android

//package com.gueei.demos.fbUpload;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Shader.TileMode;
// Source from http://androidsnips.blogspot.com/2010/08/showing-image-with-reflection-in.html
 class Utility {
  public static Bitmap getRefelection(Bitmap image)
     {
       //The gap we want between the reflection and the original image
         final int reflectionGap = 4;
       
         //Get you bit map from drawable folder
         Bitmap originalImage = image ;
       
     
         int width = originalImage.getWidth();
         int height = originalImage.getHeight();
       
     
         //This will not scale but will flip on the Y axis
         Matrix matrix = new Matrix();
         matrix.preScale(1, -1);
       
         //Create a Bitmap with the flip matix applied to it.
         //We only want the bottom half of the image
         Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height/2, width, height/2, matrix, false);
       
           
         //Create a new bitmap with same width but taller to fit reflection
         Bitmap bitmapWithReflection = Bitmap.createBitmap(width
           , (height + height/2), Config.ARGB_8888);
     
        //Create a new Canvas with the bitmap that's big enough for
        //the image plus gap plus reflection
        Canvas canvas = new Canvas(bitmapWithReflection);
        //Draw in the original image
        canvas.drawBitmap(originalImage, 0, 0, null);
        //Draw in the gap
        Paint deafaultPaint = new Paint();
        canvas.drawRect(0, height, width, height + reflectionGap, deafaultPaint);
        //Draw in the reflection
        canvas.drawBitmap(reflectionImage,0, height + reflectionGap, null);
     
        //Create a shader that is a linear gradient that covers the reflection
        Paint paint = new Paint();
        LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0,
          bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff,
          TileMode.CLAMP);
        //Set the paint to use this shader (linear gradient)
        paint.setShader(shader);
        //Set the Transfer mode to be porter duff and destination in
        paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
        //Draw a rectangle using the paint with our linear gradient
        canvas.drawRect(0, height, width,
          bitmapWithReflection.getHeight() + reflectionGap, paint);
        reflectionImage.recycle();
        return bitmapWithReflection;
     }
}