Skip to content

Android:Example:DisplayInfo

Android의 화면장치 정보를 획득할 수 있다.

Source code

package ---;

import android.app.Activity;
import android.graphics.Point;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;

/**
 * 디스플레이장치에 대한 정보획득 클래스.
 * 
 * @author cwlee
 * @since 2013-08-08
 */
public class DisplayInfo {

    /** 생성자를 지원하지 않는다. */
    protected DisplayInfo() {
        throw new UnsupportedOperationException();
    }

    // ---------------
    // static methods.
    // ---------------

    /**
     * 디스플레이 객체를 반환한다.
     * 
     * @return 정상적인 디스플레이 객체가 아닐 경우 null을 반환한다.
     */
    public static Display getDisplay(Activity a) {
        if (a != null) {
            WindowManager wm = a.getWindowManager();
            if (wm != null) {
                return wm.getDefaultDisplay();
            }
        }
        return null;
    }

    /** 화면의 너비를 픽셀(Pixel)단위로 획득한다. */
    public static int getDisplayWidthPixel(Activity a) {
        Display d = getDisplay(a);
        // if (d == null) {
        // throw new IllegalStateException("Display value is null");
        // }
        // return d.getWidth();

        Point p = new Point();
        d.getRealSize(p);
        return p.x;
    }

    /** 화면의 높이를 픽셀(Pixel)단위로 획득한다. */
    public static int getDisplayHeightPixel(Activity a) {
        Display d = getDisplay(a);
        // if (d == null) {
        // throw new IllegalStateException("Display value is null");
        // }
        // return d.getHeight();

        Point p = new Point();
        d.getRealSize(p);
        return p.y;
    }

    /** 화면의 밀도(Density)를 dpi(Dots Per Inch)단위로 획득한다. */
    public static int getDisplayDensityDpi(Activity a) {
        Display d = getDisplay(a);
        // if (d == null) {
        // throw new IllegalStateException("Display value is null");
        // }
        DisplayMetrics metrics = new DisplayMetrics();
        d.getMetrics(metrics);
        // return metrics.density;
        return metrics.densityDpi;
    }

    /** 디스플레이 정보를 문자열로 반환한다. */
    public static String toString(Activity a) {
        return getDisplayWidthPixel(a) + "x" + getDisplayHeightPixel(a) + "x" + getDisplayDensityDpi(a);
    }
}

See also

Favorite site