示例#1
0
        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;
        }
示例#2
0
        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]);
        }