private synchronized void initialiseBaseLayer(Point maxTileDimensions){
  scale=Math.min(2F,Math.min(getWidth() / (float)sWidth(),getHeight() / (float)sHeight()));
  defaultScale=scale;
  fitToBounds(true);
  fullImageSampleSize=calculateInSampleSize();
  if (fullImageSampleSize > 1) {
    fullImageSampleSize/=2;
  }
  initialiseTileMap(maxTileDimensions);
  List<Tile> baseGrid=tileMap.get(fullImageSampleSize);
  for (  Tile baseTile : baseGrid) {
    BitmapTileTask task=new BitmapTileTask(this,decoder,decoderLock,baseTile,this.failListener);
    task.execute();
  }
}

private synchronized void initialiseBaseLayer ( Point maxTileDimensions ) { scale = Math . min ( 2F , Math . min ( getWidth ( ) / ( float ) sWidth ( ) , getHeight ( ) / ( float ) sHeight ( ) ) ) ; defaultScale = scale ; fitToBounds ( true ) ; fullImageSampleSize = calculateInSampleSize ( ) ; if ( fullImageSampleSize > 1 ) { fullImageSampleSize /= 2 ; } initialiseTileMap ( maxTileDimensions ) ; List < Tile > baseGrid = tileMap . get ( fullImageSampleSize ) ; for ( Tile baseTile : baseGrid ) { BitmapTileTask task = new BitmapTileTask ( this , decoder , decoderLock , baseTile , this . failListener ) ; task . execute ( ) ; } }
called on first draw when the view has dimensions . calculates the initial sample size and starts async loading of the base layer image - the whole source subsampled as necessary .
