private void OnDispose() { if (_drawableCache != null) { foreach (var p in _drawableCache) { p.Value?.Dispose(); } _drawableCache.Clear(); _drawableCache = null; } if (_windDirectionBitmapCache != null) { foreach (var p in _windDirectionBitmapCache) { p.Value?.Recycle(); } _windDirectionBitmapCache.Clear(); _windDirectionBitmapCache = null; } _appCompatDrawableUtil = null; _drawableUtil = null; _windTools = null; }
public Bitmap WindDirectionDrawable(double degrees) { var cachekey = (int)GetWindTools().Rotate(degrees, 180); if (!_windDirectionBitmapCache.ContainsKey(cachekey)) { if (_drawableUtil == null) { _drawableUtil = new DrawableUtil(); } var source = BitmapFactory.DecodeResource(_appContext.Resources, Resource.Drawable.wind_direction); var bitmap = _drawableUtil.RotateBitmap(source, cachekey); _windDirectionBitmapCache[cachekey] = bitmap; } return(_windDirectionBitmapCache[cachekey]); }