title: Reflection on the Right Side of Image in Android ImageView
body: <p>I have an image and I want to give reflection to that image in Android application, below is the source code. I've found an example code   </p>
  
  <pre><code>      ImageView imageView = (ImageView) findViewById(R.id.image1);                
        imageView.setImageResource(imageIDs[position]);
  
      //The gap we want between the reflection and the original image
        final int reflectionGap = 4;
  
        //Get you bit map from drawable folder
        Bitmap originalImage = BitmapFactory.decodeResource(getResources(), 
                imageIDs[position]);
  
        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 ;
        if(isVertical)
            reflectionImage= Bitmap.createBitmap(originalImage, 0, height/2, width, height/2, matrix, false);
        else
            reflectionImage= Bitmap.createBitmap(originalImage, width/2, 0, width/2, height, matrix, false);
  
        //Create a new bitmap with same width but taller to fit reflection
        Bitmap bitmapWithReflection;
        if(isVertical)
            bitmapWithReflection = Bitmap.createBitmap(width 
          , (height + height/2), Config.ARGB_8888);
        else
            bitmapWithReflection = Bitmap.createBitmap(width +width/2
                      , height, 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();
       if(isVertical)
       canvas.drawRect(0, height, width, height + reflectionGap, deafaultPaint);
       else
           canvas.drawRect(width, 0, width+reflectionGap, height, deafaultPaint);
       //Draw in the reflection
       if(isVertical)
       canvas.drawBitmap(reflectionImage,0, height + reflectionGap, null);
       else
           canvas.drawBitmap(reflectionImage,width + reflectionGap,0 , null);
  
       //Create a shader that is a linear gradient that covers the reflection
       Paint paint = new Paint(); 
       LinearGradient shader;
       if(isVertical)
       shader = new LinearGradient(0, originalImage.getHeight(), 0, 
         bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, 
         TileMode.CLAMP); 
       else
           shader = new LinearGradient(originalImage.getWidth(),0,  
                     bitmapWithReflection.getWidth() + reflectionGap,0,  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
       if(isVertical)
       canvas.drawRect(0, height, width, 
         bitmapWithReflection.getHeight() + reflectionGap, paint); 
       else
           canvas.drawRect(width, 0, bitmapWithReflection.getWidth() + reflectionGap, 
                     height, paint); 
  
       //Create an Image view and add our bitmap with reflection to it
       //ImageView imageView = new ImageView(this);
       imageView.setImageBitmap(bitmapWithReflection);`
  </code></pre>
  
  <p>This example works gracefullt when I give isVertical value=true, ath the bottom of the image, but I want to use reflection effect at the right side of the image also because I think it will be better in landscape mode. But it does not work as I want. It shows reflection side top-bottom reversed. What is my mistake? Thanks.  </p>