gpt4 book ai didi

java - 根据屏幕尺寸在 JAVA 中定义布局尺寸 (android)

转载 作者:行者123 更新时间:2023-11-29 20:21:16 25 4
gpt4 key购买 nike

我想在单击按钮时显示一个对话框。我已经完成了这样的自定义对话框:

final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog);
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);

dialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});

dialog.setCanceledOnTouchOutside(false);
Window window = dialog.getWindow();
window.setLayout(300, 450);
dialog.show();

如您所见,我在 java 中使用 window.setLayout 定义布局的大小,因为它不适用于对话框的 xml(而且我无法将对话框主题放在 Activity 上)。我想根据屏幕尺寸在 java 中设置布局尺寸,对于带有 layout-large 和 xlarge 的 xml(正如我所解释的,我不能使用 xml 来根据屏幕尺寸定义布局)。

谢谢,

最佳答案

您可以在 values 文件夹下的 dimens.xml 文件中配置它。您可以像这样为不同的屏幕尺寸指定一个值文件夹:

values-w820dp

和 dimens.xml 文件示例:

<resources>
<dimen name="dialog_height">64dp</dimen>
<dimen name="dialog_width">64dp</dimen>
</resources>

Here你有更多关于它的信息。

然后在你的代码中你可以像这样访问它

int dialogHeight = (int) getResources().getDimension(R.dimen.dialog_height)
int dialogWidth = (int) getResources().getDimension(R.dimen.dialog_width)

getResources().getDimension() 将根据设备自动从正确的文件夹中解析正确的维度。

这里有一些常见的配置:

  • 320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
  • 480dp: a tweener tablet like the Streak (480x800 mdpi).
  • 600dp: a 7” tablet (600x1024 mdpi).
  • 720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

希望对您有所帮助。

关于java - 根据屏幕尺寸在 JAVA 中定义布局尺寸 (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com