Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Point;

import android.os.Build;
import android.support.annotation.NonNull;

import android.view.Display;
import android.view.WindowManager;

public class Main {
    /**
     * This method calculates maximum size of both width and height of bitmap.
     * It is twice the device screen diagonal for default implementation (extra quality to zoom image).
     * Size cannot exceed max texture size.
     *
     * @return - max bitmap size in pixels.
     */
    @SuppressWarnings({ "SuspiciousNameCombination", "deprecation" })
    public static int calculateMaxBitmapSize(@NonNull Context context) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        Display display = wm.getDefaultDisplay();

        Point size = new Point();
        int width, height;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
            display.getSize(size);
            width = size.x;
            height = size.y;
        } else {
            width = display.getWidth();
            height = display.getHeight();
        }

        int screenDiagonal = (int) Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));

        Canvas canvas = new Canvas();
        return Math.min(screenDiagonal * 2,
                Math.min(canvas.getMaximumBitmapWidth(), canvas.getMaximumBitmapHeight()));
    }
}