コード例 #1
0
        public MainBuildingView(Context context, int id) :
            base(context, null, 0)
        {
            startPointPaint.SetStyle(Paint.Style.Fill);             //TODO
            c     = context;
            displ = Resources.DisplayMetrics;

            _plan = ContextCompat.GetDrawable(Context, id);

            //imageWidth = _plan.IntrinsicWidth;
            //imageHeight = _plan.IntrinsicHeight;

            imageWidth  = (int)(displ.HeightPixels * 1.777778 * 0.85);
            imageHeight = (int)(displ.HeightPixels * 0.85);

            widthScale  = (float)imageWidth / baseWidth;
            heightScale = (float)imageHeight / baseHeight;

            routePaint.StrokeWidth = routePaint.StrokeWidth * widthScale;

            //if (displ.HeightPixels - imageHeight > 0 && displ.HeightPixels - imageHeight < 50)
            //{
            //	_scaleFactor *= 0.9f;
            //}

            _plan.SetBounds(0, 0, imageWidth, imageHeight);
            //_scaleDetector = new ScaleGestureDetector(context, new MyScaleListener(this));
            _doubleTapListener = new GestureDetector(context, new MyDoubleTapListener(this, displ));

            imm = (InputMethodManager)c.GetSystemService(Context.InputMethodService);
        }
コード例 #2
0
        private int dpToPx(int dp)
        {
            Android.Util.DisplayMetrics displayMetrics = this.Resources.DisplayMetrics;
            int px = Convert.ToInt32(Math.Round(dp * (displayMetrics.Xdpi / (float)Android.Util.DisplayMetricsDensity.Default)));

            return(px);
        }
コード例 #3
0
        public double getWidth()
        {
            Display d = windowManager.DefaultDisplay;

            Android.Util.DisplayMetrics m = new Android.Util.DisplayMetrics();
            d.GetMetrics(m);

            return((int)((m.WidthPixels) / m.Density));
        }
コード例 #4
0
 public static float DpToPixels(Context context, float valueInDp)
 {
     Android.Util.DisplayMetrics metrics = context.Resources.DisplayMetrics;
     return(TypedValue.ApplyDimension(ComplexUnitType.Dip, valueInDp, metrics));
 }
コード例 #5
0
        public static bool isTabletDevice(Context activityContext)
        {
            bool xlarge = ((activityContext.Resources.Configuration.ScreenLayout & ScreenLayout.SizeMask) == ScreenLayout.SizeXlarge);

            if (xlarge)
            {
                Android.Util.DisplayMetrics metrics = new Android.Util.DisplayMetrics();
                Activity activity = (Activity)activityContext;
                activity.WindowManager.DefaultDisplay.GetMetrics(metrics);
                if (metrics.DensityDpi == DisplayMetricsDensity.Default
                    || metrics.DensityDpi == DisplayMetricsDensity.High
                    || metrics.DensityDpi == DisplayMetricsDensity.Medium
                    || metrics.DensityDpi == DisplayMetricsDensity.Xhigh)
                    return true;
            }
            return false;
        }
コード例 #6
0
ファイル: App.cs プロジェクト: GuyMicciche/SuperNWTBible
        public DisplayMetricsDensity GetScreenDensity(Display display)
        {
            Android.Util.DisplayMetrics metrics = new Android.Util.DisplayMetrics();
            display.GetMetrics(metrics);

            switch (metrics.DensityDpi)
            {
                case DisplayMetricsDensity.Low:
                    return DisplayMetricsDensity.Low;
                case DisplayMetricsDensity.Medium:
                    return DisplayMetricsDensity.Medium;
                case DisplayMetricsDensity.High:
                    return DisplayMetricsDensity.High;
                case DisplayMetricsDensity.Xhigh:
                    return DisplayMetricsDensity.Xhigh;
                case DisplayMetricsDensity.Tv:
                    return DisplayMetricsDensity.Tv;
            }

            return DisplayMetricsDensity.Default;
        }