0
我目前正在開發一款遊戲。我使用DP作爲所有對象的度量,通過度量計算回PX。問題是,例如,在我的Nexus 7平板電腦上,所有元素看起來都不錯,它們的尺寸完美無瑕,但在Nexus 4上它們太大了 - 顯然是因爲DP。如何讓對象/視圖佔據屏幕的特定部分?
如何能夠做到這樣的事:
的對象始終是屏幕寬度的1/5?
是否必須以編程方式計算新寬度?如果是這樣,我將如何做到這一點?我必須記住顯示器的密度和分辨率,但我無法想象我現在能如何計算這個值。或者還有其他辦法可以做到這一點嗎?
順便說一句:我正在繪製一個畫布,所以我必須重新計算所有這些像素。
這是我目前使用:
public int convertDpToPx(int dp) {
DisplayMetrics displayMetrics = mActivity.getResources().getDisplayMetrics();
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, displayMetrics);
}
public int convertPxToDp(int px) {
DisplayMetrics displayMetrics = mActivity.getResources().getDisplayMetrics();
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px , displayMetrics);
}
和對象#1具有例如100dp的寬度,但它需要在屏幕的更大一部分我的4.7英寸的設備上比我7寸平板電腦。
嗯,我覺得我不得不保持屏幕的密度和所有這些東西,但我想你是對的,就這麼簡單。謝謝 – damian
是的,容易如此:)你也可以在dimen.xml中指定像素單元在這裏查看我的答案,看看是否可以幫助。 http://stackoverflow.com/questions/18027054/use-density-independent-pixels-for-width-and-height-when-creating-a-bitmap/18028587#18028587快樂編碼! – MattMatt