Android 有没有办法用dpi获得屏幕大小
我用这个:Android 有没有办法用dpi获得屏幕大小,android,measurement,android-screen,Android,Measurement,Android Screen,我用这个: int wi=getWindowManager().getDefaultDisplay().getWidth(); 以像素为单位获取屏幕大小。是否有办法在dpi中获取屏幕大小 我这样做是为了根据屏幕大小选择不同的布局 有没有办法获得dpi中的电子屏幕大小 DisplayMetrics可以告诉您屏幕大小(以像素为单位)以及屏幕密度。从那里,您可以在dp中计算屏幕大小 我这样做是为了根据屏幕大小选择不同的布局 如果您将版面放在适当的目录中(例如,res/layout large/,re
int wi=getWindowManager().getDefaultDisplay().getWidth();
以像素为单位获取屏幕大小。是否有办法在dpi
中获取屏幕大小
我这样做是为了根据屏幕大小选择不同的布局
有没有办法获得dpi中的电子屏幕大小
DisplayMetrics
可以告诉您屏幕大小(以像素为单位)以及屏幕密度。从那里,您可以在dp
中计算屏幕大小
我这样做是为了根据屏幕大小选择不同的布局
如果您将版面放在适当的目录中(例如,res/layout large/
,res/layout-sw600dp/
),资源框架会自动为您处理此问题
有没有办法获得dpi中的电子屏幕大小
DisplayMetrics
可以告诉您屏幕大小(以像素为单位)以及屏幕密度。从那里,您可以在dp
中计算屏幕大小
我这样做是为了根据屏幕大小选择不同的布局
如果您将版面放在适当的目录中(例如,res/layout large/
,res/layout-sw600dp/
),资源框架会自动为您处理此问题。dpi中的屏幕大小”是一个毫无意义的声明。您是否只想获取显示器的DPI
其次,不要这样做
说真的,停下来。不要这样做
按预期使用布局文件夹。如果您需要不同的HDPI布局,请将自定义布局放入layout HDPI
也就是说,如果你只需要密度:
DisplayMetrics metrics = new DisplayMetrics();
getWindow().getDisplayMetrics(metrics);
int dpi = metrics.densityDpi;
“dpi屏幕大小”是一句毫无意义的话。您是否只想获取显示器的DPI
其次,不要这样做
说真的,停下来。不要这样做
按预期使用布局文件夹。如果您需要不同的HDPI布局,请将自定义布局放入layout HDPI
也就是说,如果你只需要密度:
DisplayMetrics metrics = new DisplayMetrics();
getWindow().getDisplayMetrics(metrics);
int dpi = metrics.densityDpi;
下面是一种以像素为单位计算屏幕宽度和高度的方法
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
下面是一种以像素为单位计算屏幕宽度和高度的方法
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
您必须创建公制对象并执行以下操作
public class LocalUtil extends Application {
private static Context context1;
private static DisplayMetrics metrics;
public static void setContext(Context context)
{
context1=context;
metrics=context1.getResources().getDisplayMetrics();
}
public static float getDensity()
{
return metrics.density;
}
public static int getScreenWidth()
{
return metrics.widthPixels;
}
public static int getScreenHeight()
{
return metrics.heightPixels;
}
public static float getScreenWidthInDpi()
{
return metrics.widthPixels/metrics.density;
}
public static float getScreenHeightInDpi()
{
return metrics.heightPixels/metrics.density;
}
每次你想使用这个方法,你都可以用setcontext方法设置上下文,并根据你的目的调用best方法
与此代码类似,此代码是主要活动的oncreateView:
@Override
protected void onCreate(Bundle savedInstanceState) {
LocalUtil.setContext(getApplicationContext());
LocalUtil.getScreenWidthInDpi();
//or call each method you want
}
您必须创建公制对象并执行以下操作
public class LocalUtil extends Application {
private static Context context1;
private static DisplayMetrics metrics;
public static void setContext(Context context)
{
context1=context;
metrics=context1.getResources().getDisplayMetrics();
}
public static float getDensity()
{
return metrics.density;
}
public static int getScreenWidth()
{
return metrics.widthPixels;
}
public static int getScreenHeight()
{
return metrics.heightPixels;
}
public static float getScreenWidthInDpi()
{
return metrics.widthPixels/metrics.density;
}
public static float getScreenHeightInDpi()
{
return metrics.heightPixels/metrics.density;
}
每次你想使用这个方法,你都可以用setcontext方法设置上下文,并根据你的目的调用best方法
与此代码类似,此代码是主要活动的oncreateView:
@Override
protected void onCreate(Bundle savedInstanceState) {
LocalUtil.setContext(getApplicationContext());
LocalUtil.getScreenWidthInDpi();
//or call each method you want
}
嗨,是的,我正在尝试获取不同布局的屏幕大小。现在我有3个布局,使用if来决定要加载的布局,你能解释一下如何使用文件夹来加载不同的布局吗,看起来比我的更好doing@Tedpottel看看哪一个解释得更详细。嗨,是的,我正在尝试获取不同布局的屏幕大小。现在我有3个布局,使用if来决定要加载的布局,你能解释一下如何使用文件夹来加载不同的布局吗,看起来比我的更好doing@Tedpottel请查看更详细的解释。