分辨率更改会影响对话

时间:2013-12-10 11:53:23

标签: android dialog

在我的应用程序中,我有一些弹出对话框。

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

在我的Dialog课程中,我有

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

所以它在我的平板电脑上工作正常(华硕Transformer Pad TF300T) 但现在我有另一个平板电脑(华硕ME302C),我的对话框尺寸很小! 但它们都有相同的屏幕尺寸。

1 个答案:

答案 0 :(得分: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;
}

将您的值乘以该比例因子并完成。