/** * Get the tile size in pixels this tile provider provides. * * @return the tile size in pixels */ public int getTileSizePixels() { return mTileSource.getTileSizePixels(); }
/** * Draw a 'loading' placeholder with a canvas. */ private SafePaint getLoadingTilePaint() { if (mLoadingTilePaint == null && mLoadingBackgroundColor != Color.TRANSPARENT) { try { final int tileSize = mTileProvider.getTileSource() != null ? mTileProvider.getTileSource() .getTileSizePixels() : 256; mLoadingTileBitmap = Bitmap.createBitmap(tileSize, tileSize, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(mLoadingTileBitmap); canvas.drawColor(mLoadingBackgroundColor); final int lineSize = tileSize / 16; for (int a = 0; a < tileSize; a += lineSize) { canvas.drawLine(0, a, tileSize, a, mLoadingPaint); canvas.drawLine(a, 0, a, tileSize, mLoadingPaint); } mLoadingTilePaint = new SafePaint(); mLoadingTilePaint.setShader(new BitmapShader(mLoadingTileBitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT)); } catch (final OutOfMemoryError e) { Log.e(TAG, "OutOfMemoryError getting loading tile: " + e.toString()); System.gc(); } } return mLoadingTilePaint; }