2013-12-10 59 views
1

在我的應用程序中,我彈出了一些對話框。分辨率更改會影響對話框

final Dialog dialog = new Dialog(context); 
dialog.setContentView(R.layout.my_dialog); 
dialog.getWindow().setLayout(Dialog.WIDTH,Dialog.HEIGHT); 
dialog.show(); 

而在我的對話框類我有

public static final int WIDTH = 1000; 
public static final int HEIGHT = 700; 

所以它正常工作在我的平板電腦(ASUS變壓器墊TF300T) 但現在我有其他片(華碩ME302C)和我的對話大小小! 但它們都具有相同的屏幕尺寸。

+0

屏幕尺寸可能相同,但它們具有相同的分辨率嗎?如果您的Dialog尺寸爲500x500像素,則分辨率爲1024x768的設備會比分辨率爲800x600的設備的尺寸更小。 –

+0

是的決議是不同的。那麼,如何編寫我的代碼以避免我的對話出現這種情況? – GigantoMK

回答

2

您應該使用DP代替PX ...
如果你不能,怎麼一回事,因爲你的代碼,這樣做,你必須找到由倍增因數的器件密度和規模。

LDPI顯示器具有0.75
MDPI的因子(默認)顯示器具有1.0
HDPI顯示器的因子具有1.5
xhdpi顯示器的因子具有2.0
xxhdpi顯示器的因子具有3.0
一個因子 xxxhdpi顯示有4.0

的因素下面是會爲你的方法:

private final float getDensityScale() 
{ 
    final DisplayMetrics metrics = 
     Resources.getSystem().getDisplayMetrics(); 
    return metrics.density; 
} 

乘以你按比例因子計算出的值就完成了。

+0

完美!!!!! 非常感謝@ Klaus66 – GigantoMK