我使用这个:有没有办法让屏幕大小以dpi
int wi=getWindowManager().getDefaultDisplay().getWidth();
得到屏幕尺寸以像素为单位。有没有办法让屏幕尺寸在dpi
?
我正在根据屏幕大小选择不同的布局。
我使用这个:有没有办法让屏幕大小以dpi
int wi=getWindowManager().getDefaultDisplay().getWidth();
得到屏幕尺寸以像素为单位。有没有办法让屏幕尺寸在dpi
?
我正在根据屏幕大小选择不同的布局。
有没有一种方法可以在dpi上获得escreen尺寸?
DisplayMetrics
可以告诉你以像素为单位的屏幕大小加上屏幕密度。从那里,你可以计算出dp
的屏幕尺寸。
我正在根据屏幕大小选择不同的布局。
这是你由资源框架自动处理的,如果你把你的布局在正确的目录中(例如,res/layout-large/
,res/layout-sw600dp/
)。
“屏幕尺寸以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
您必须创建度量对象,并做到以下
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方法上下文和调用最佳的方法与你的目的 这样的代码验证码is oncreate查看主要活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
LocalUtil.setContext(getApplicationContext());
LocalUtil.getScreenWidthInDpi();
//or call each method you want
}
嗨,是的我试图让屏幕尺寸为不同的布局。现在我有3个布局,并使用一个如果他们来决定什么样的布局加载,你能解释更多关于使用不同布局的文件夹,似乎更好,那么我在做什么 – 2013-03-05 12:52:19
@Tedpottel检查[本页](http:///developer.android.com/guide/topics/resources/providing-resources.html),这将更详细地解释它。 – kcoppock 2013-03-05 17:36:37