获取手机屏幕宽高 dp|px互转
2016-12-09 10:06
274 查看
package com.rivc.myapplication; import android.content.Context; import android.graphics.Point; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Display; public class MainActivity extends AppCompatActivity { private int width; private int height; private static float density = 0f; private static float defaultDensity = 1.5f;// 高分辨率的手机density普遍接近1.5 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Display display = this.getWindowManager().getDefaultDisplay(); Point size = new Point(); 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(); } Log.e("px", "width: " + width + " height: " + height); Log.e("dp by px2dp", "width: " + px2dp(this, width) + " height: " + px2dp(this, height)); Log.e("px by dp2px", "width: " + dp2px(this, px2dp(this, width)) + " height: " + dp2px(this, px2dp(this, height))); } public static int px2dp(Context context, float pxValue) { int dp; if (density == 0) { if (context != null) { density = getDensity(context); } if (density == 0) { density = defaultDensity; } } dp = (int) (pxValue / density + 0.5f); return dp; } public static int dp2px(Context context, float dpValue) { int px; if (density == 0) { if (context != null) { density = getDensity(context); } if (density == 0) { density = defaultDensity; } } px = (int) (dpValue * density + 0.5f); return px; } public static float getDensity(Context context) { return context.getResources().getDisplayMetrics().density; } }
转发的请标明出处,谢谢!
相关文章推荐
- android 手机屏幕有关的几个工具(屏幕宽高,dp和px互相转换)
- 获取屏幕宽高,dp转px
- Android 获取屏幕宽高,dp、px、sp互转
- dp和px间的转换及屏幕宽高的获取
- 安卓工具类1——像素PX和dp互相转换的方法(获取手机屏幕尺寸PX)
- Android dp、px、sp相互转换、获取屏幕宽高工具类
- Android手机适配问题【autolayout】,【.9制作】【获取手机屏幕的宽高】【px,dp转换】
- 获取屏幕宽高,和dp,px,sp的转化工具类
- Android:获取手机屏幕宽高
- Android系统版本以及屏幕相关参数的获取包括长宽,物理尺寸,px,dp,dpi,ppi等,
- android常见的屏幕工具,获取屏幕宽高,状态栏高,手机截屏(包括状态栏和不包括状态栏)
- 详解Android应用中屏幕尺寸的获取及dp和px值的转换
- Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
- android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理
- 分辨率像素android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理
- Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
- Android的单位px,pt,dp,sp总结和获取屏幕分辨率
- android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理
- Android获取手机屏幕大小 — DisplayMetrics取得画面宽高的方法
- DisplayMetrics获取手机屏幕大小(宽高)