我使用這個:有沒有辦法讓屏幕大小以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