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);
}
}