Android 分辨率更改会影响对话框

Android 分辨率更改会影响对话框,android,dialog,Android,Dialog,在我的应用程序中,我有一些弹出对话框 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

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

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;
因此,它在我的平板电脑上运行良好(华硕Transformer Pad TF300T) 但现在我有了另一款平板电脑(华硕ME302C),我的对话框尺寸很小!
但是它们都有相同的屏幕大小。

您应该使用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;
}

将您的值乘以该比例因子,就完成了。

屏幕大小可能相同,但分辨率是否相同?如果有大小为500x500 px的对话框,则分辨率为1024x768的设备上的对话框将比分辨率为800x600的设备上的对话框小。是的,分辨率不同。那么,如何编写代码来避免对话框出现这种情况呢?