我正在使用它:
int wi=getWindowManager().getDefaultDisplay().getWidth();
获取屏幕大小(以像素为单位)。有没有办法在dpi
???
我这样做是为了根据屏幕尺寸选择不同的布局。
答案 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