下面是重写dialog的代码,想请问一下如何修改对话框的大小,自适应屏幕的那种

public class Dialog_SerialPort extends Dialog {
private SparseArray<View> mViews;
private View mConverView;

public Dialog_SerialPort(Context context, int layout, int style) {

this(context, WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT, layout, style);

}

public Dialog_SerialPort(Context context, int width, int height,
int layout, int style) {
super(context, style);
// set content
mViews = new SparseArray<View>();
this.mConverView = LayoutInflater.from(context).inflate(layout, null,
false);
// 记住这一步
mConverView.setTag(this);
setContentView(layout);

Window window = getWindow();
window.getDecorView().setPadding(0, 0, 0, 0);

WindowManager.LayoutParams lp = window.getAttributes();
//lp.width = WindowManager.LayoutParams.MATCH_PARENT;
//lp.height = WindowManager.LayoutParams.MATCH_PARENT;

window.setAttributes(lp);

}

例如:对话框宽高是屏幕的0.5这样的

你改你自定的布局大小就可以了。追问

this(context, WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT, layout, style);
在这里改吗?
可以再指点一下吗谢谢你

追答

你的对话框是自定义布局的吗?是的就改你的布局,固定大小就可以了。

追问

不要固定大小,要自适应不同分辨率的屏幕

追答

哪你获取屏幕大下除以二呗!

温馨提示:内容为网友见解,仅供参考
无其他回答

下面是重写dialog的代码,想请问一下如何修改对话框的大小,自适应屏幕的...
你改你自定的布局大小就可以了。

关闭MFC界面弹出对话框的问题!!!
你只需要在classes\/resources\/files这3个选项中选择resources这个资源视图,然后打开Dialog这个文件夹,然后再这个文件夹上右键--插入Dialog,然后就出来了一个只有确定和取消两个键的新的对话框,想更改布局可以直接拖动那两个按钮(控件),右键按钮(比如是)选择属性,把标题该成你想要的“YES”就行了啊...

QT编程的QDialog对话框如何设置为不能用鼠标点击后拉大或缩小,也就是...
在构造函数里调用函数setFixedSize(),如下:DlgXXXX::DlgXXXX(QWidget *parent) : QDialog(parent), ui(new Ui::DlgXXXX) { ui->setupUi(this); setFixedSize(500, 500); ...

ElementUIDialog对话框,vue组件之间传值
弹出Dialog对话框。输入表单数据 表单数据回传给父组件HelloWorld.vue 新建一个ElementUI项目,修改文件HelloWorld.vue,完整内容如下:<template><divclass="hello"><el-row><el-buttontype="primary"@click='add()'>添加<\/el-button><\/el-row>\/\/使用子组件<Goodsref="gds"@children="parentGoods"...

MFC对话框中,向对话框中添加水平和垂直的滚动条,拉动滚动条的浮标使得里...
记得你问过我问题,建议你在OnInitDialog里面判断屏幕分辨率,如果分辨率小于要求,再通过SetWindowStyle、MoveWindow之类的函数代码增加滚动条。对话框的滚动是要求自己控制的,文库例子中只是一半,另一半横向滚动意思相同。如果你这个是一个项目,给你建议:一个界面中不适合做太多控制,你可以将同类控制放在...

VC++怎么设置对话框大小?
int cx = GetSystemMetrics(SM_CXSCREEN);int cy = GetSystemMetrics(SM_CYSCREEN);MoveWindow(0, 0, cx, cy);实现全屏显示 也可以通过系统消息实现 SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE);\/\/最大化显示 PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE);\/\/最大化显示 注:SendMessage是随调随用,Post...

关于对话框修改ID号的问题
1.改对话框的ID是可以,关键是改变对话框类的IDD值,这个值是enum,下面是部分代码,你在对框类的头文件可以看到这个东西,为什么改这里见效呢,因为在对话框的构造函数有: CDialog(CYourDlg::IDD, pParent)其enum的代码大概如下 \/\/ Dialog Data \/\/{{AFX_DATA(CYourDlg)enum { IDD = IDD_YOUR...

netbeans图形界面如何设置对话框?
这个问题和弹出式菜单一样,他们都属于“同一类”。当你把JDialog拖拽到JFrame里的时候,在编辑器视图的左边你会看到生成的变量名,也就是jDialog1.双击它,就会出现它设计器了。如果你需要调用它,必须使用jDialog.setVisible(true);

mfc 在一个Dialog上点击了一个按钮,弹出一个popup属性的窗口,想这个...
在主对话框中,通过类向导添加一个 WM_MOVE的消息处理,见截图:然后在WM_MOVE的消息响应函数中通过调用API函数:SetWindowPos()来设置你那个popup窗口的位置,这样就能达到你想要的效果了。

MFC里面相同对话框反复出现
改成这个试试:pEditFileInp->GetWindowTextA(fFileInp);pEditFileOut->GetWindowTextA(fFileOut);CDialog::OnOK();--- 如果问题不是出在这,请你在弹出对话框的地方设置一个断点调试一下,看一下是不是你的程序激活了它两次

相似回答