private static int computeInitialSampleSize(BitmapFactory.Options options,int minSideLength,int maxNumOfPixels){
  double w=options.outWidth;
  double h=options.outHeight;
  int lowerBound=(maxNumOfPixels == -1) ? 1 : (int)Math.ceil(Math.sqrt(w * h / maxNumOfPixels));
  int upperBound=(minSideLength == -1) ? 128 : (int)Math.min(Math.floor(w / minSideLength),Math.floor(h / minSideLength));
  if (upperBound < lowerBound) {
    return lowerBound;
  }
  if ((maxNumOfPixels == -1) && (minSideLength == -1)) {
    return 1;
  }
 else   if (minSideLength == -1) {
    return lowerBound;
  }
 else {
    return upperBound;
  }
}

private static int computeInitialSampleSize ( BitmapFactory . Options options , int minSideLength , int maxNumOfPixels ) { double w = options . outWidth ; double h = options . outHeight ; int lowerBound = ( maxNumOfPixels == - 1 ) ? 1 : ( int ) Math . ceil ( Math . sqrt ( w * h / maxNumOfPixels ) ) ; int upperBound = ( minSideLength == - 1 ) ? 128 : ( int ) Math . min ( Math . floor ( w / minSideLength ) , Math . floor ( h / minSideLength ) ) ; if ( upperBound < lowerBound ) { return lowerBound ; } if ( ( maxNumOfPixels == - 1 ) && ( minSideLength == - 1 ) ) { return 1 ; } else if ( minSideLength == - 1 ) { return lowerBound ; } else { return upperBound ; } }
compute bitmap initial sample size
