android计算dpi代码_获取Android设备屏幕宽、高、dpi密度及横竖屏等参数

获取Android设备屏幕宽、高、dpi密度及横竖屏等参数。

功能

获取Android设备屏幕宽、高、dpi密度及横竖屏等参数

代码

/**

* 系统参数类

*

* @author wader

*

*/

public class MySystemParams {

private final String TAG = "SystemParams";

private static MySystemParams params;

public int screenWidth;// 屏幕宽度,单位为px

public int screenHeight;// 屏幕高度,单位为px

public int densityDpi;// 屏幕密度,单位为dpi

public float scale;// 缩放系数,值为 densityDpi/160

public float fontScale;// 文字缩放系数,同scale

public final static int SCREEN_ORIENTATION_VERTICAL = 1; // 屏幕状态:横屏

public final static int SCREEN_ORIENTATION_HORIZONTAL = 2; // 屏幕状态:竖屏

public int screenOrientation = SCREEN_ORIENTATION_VERTICAL;// 当前屏幕状态,默认为竖屏

/**

* 私有构造方法

*

* @param activity

*/

private MySystemParams(Activity activity) {

DisplayMetrics dm = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getMetrics(dm);

screenWidth = dm.widthPixels;

screenHeight = dm.heightPixels;

densityDpi = dm.densityDpi;

scale = dm.density;

fontScale = dm.scaledDensity;

screenOrientation = screenHeight > screenWidth ? SCREEN_ORIENTATION_VERTICAL

: SCREEN_ORIENTATION_HORIZONTAL;

}

/**

* 获取实例

*

* @param activity

* @return

*/

public static MySystemParams getInstance(Activity activity) {

if (params == null) {

params = new MySystemParams(activity);

}

return params;

}

/**

* 获取一个新实例

*

* @param activity

* @return

*/

public static MySystemParams getNewInstance(Activity activity) {

if (params != null) {

params = null;

}

return getInstance(activity);

}

/**

* 参数信息

*/

public String toString() {

return TAG

+ ":[screenWidth: "

+ screenWidth

+ " screenHeight: "

+ screenHeight

+ " scale: "

+ scale

+ " fontScale: "

+ fontScale

+ " densityDpi: "

+ densityDpi

+ " screenOrientation: "

+ (screenOrientation == SCREEN_ORIENTATION_VERTICAL ? "vertical"

: "horizontal") + "]";

}

}

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值