改变Dialog宽高

455 阅读1分钟

直接在布局文件中更改是无效的
核心代码

在Dialog调用show方法之后借助WindowManager进行设置

 timeDialog.show();
   WindowManager windowManager = getWindowManager();
                 Display display = windowManager.getDefaultDisplay();
                 WindowManager.LayoutParams lp = timeDialog.getWindow().getAttributes();
                 lp.width = (int)(display.getWidth()*0.8); //设置宽度
                timeDialog.getWindow().setAttributes(lp);

set_time.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:orientation="vertical"
    android:paddingRight="100dp"
    android:background="@color/blue"
    android:layout_height="wrap_content" >
    <TextView
        android:text="请输入用户名和密码"
        android:textColor="@color/white"
        android:textSize="48sp"
        android:layout_marginTop="57dp"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <EditText
        android:id="@+id/edt_user"
        android:layout_marginTop="84dp"
        android:paddingLeft="30dp"
        android:hint="请输入用户名"
        android:text=""
        android:layout_marginLeft="110dp"
        android:background="@drawable/kuang"
        android:layout_width="704dp"
        android:layout_height="112dp"/>
    <EditText
        android:id="@+id/edt_pw"
        android:text=""
        android:paddingLeft="30dp"
        android:hint="请输入密码"
        android:layout_marginLeft="110dp"
        android:layout_marginTop="44dp"
        android:background="@drawable/kuang"
        android:password="true"
        android:layout_width="704dp"
        android:layout_height="112dp"/>
    <Button
        android:id="@+id/bt_finish"
        android:onClick="finish"
        android:background="@drawable/ok"
        android:layout_marginTop="80dp"
        android:layout_marginBottom="40dp"
        android:textColor="@color/white"
        android:text="完成"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="109dp"/>

</LinearLayout>
Dialog timeDialog = new Dialog(MainActivity.this);
 View inflate = View.inflate(MainActivity.this, R.layout.set_time, null);
                timeDialog.setContentView(inflate);
                timeDialog.show();
                 WindowManager windowManager = getWindowManager();
                 Display display = windowManager.getDefaultDisplay();
                 WindowManager.LayoutParams lp = timeDialog.getWindow().getAttributes();
                 lp.width = (int)(display.getWidth()*0.8); //设置宽度
                timeDialog.getWindow().setAttributes(lp);