直接在布局文件中更改是无效的
核心代码
在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);