有没有办法以dpi获取屏幕大小

时间:2013-03-04 23:41:55

标签: android measurement android-screen

我正在使用它:

int wi=getWindowManager().getDefaultDisplay().getWidth();

获取屏幕大小(以像素为单位)。有没有办法在dpi ???

中获得屏幕尺寸

我这样做是为了根据屏幕尺寸选择不同的布局。

4 个答案:

答案 0 :(得分:3)

  

有没有办法在dpi中获得屏幕尺寸?

DisplayMetrics可以告诉您屏幕大小(以像素为单位)加上屏幕密度。从那里,您可以在dp中计算屏幕尺寸。

  

我这样做是为了根据屏幕尺寸选择不同的布局。

如果您将布局放在正确的目录中(例如res/layout-large/res/layout-sw600dp/),资源框架会自动为您处理。

答案 1 :(得分:1)

您必须创建指标对象并在

下面执行
 @Override
protected void onCreate(Bundle savedInstanceState) {
    LocalUtil.setContext(getApplicationContext());
    LocalUtil.getScreenWidthInDpi();
    //or call  each method you want
  }

并且每个想要使用此方法的人都可以使用setcontext方法设置上下文,并根据您的目的调用最佳方法 像这段代码一样,这段代码是主要活动的oncreateView:

(x - h) * (x - h) / a * a + (y - k) * (y - k) / b * b <= 1

答案 2 :(得分:0)

“dpi中的屏幕大小”是一个毫无意义的陈述。你只想获得显示器的DPI吗?

其次,不要这样做

说真的,停下来。不要这样做。

按预期使用布局文件夹。如果您需要不同的HDPI布局,请将自定义布局放在layout-hdpi中。

那就是说,如果你只需要密度:

DisplayMetrics metrics = new DisplayMetrics();
getWindow().getDisplayMetrics(metrics);
int dpi = metrics.densityDpi;

答案 3 :(得分:0)

这是一种以像素为单位计算屏幕宽度和高度的方法。

int widthPixels = getWindowManager().getDefaultDisplay().getWidth();
int heightPixels = getWindowManager().getDefaultDisplay().getHeight();

float scale = getApplicationContext().getResources().getDisplayMetrics().density;

int width = (int) (widthPixels - 0.5f)/scale; //width of screen in dpi
int height = (int) (heightPixels - 0.5f)/scale; //height of screen in dpi