Android: How can I set the width and height of AlertDialog and the AlertDialog style button?

I have a task to change the width and height of AlertDialog to xml, I want this to become a style, so I can use it easily. And I also need to change the AlertDialog style button. Can you tell me a way to achieve the goal. Thank you, very grateful. PS, I better achieve the goal by changing the xml.

+7
source share
2 answers

There are two methods: 1) programmatically 2) Using xml layout

1)=======> AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(layout); builder.setTitle("Title"); alertDialog = builder.create(); alertDialog.show(); alertDialog.getWindow().setLayout(600, 400); //Controlling width and height. ( or ) alertDialog.show(); WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.copyFrom(alertDialog.getWindow().getAttributes()); lp.width = 150; lp.height = 500; lp.x=-170; lp.y=100; alertDialog.getWindow().setAttributes(lp); 

If you want to show a layout that will display as an Alert dialog , see this

 2)========> 

choose.xml

 <TextView android:id="@+id/img" android:layout_width="wrap_content" android:text="@string/choose" android:textSize="25dp" android:textColor="#fff" android:layout_height="50dp"/> <TableLayout android:id="@+id/table" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#fff" android:orientation="vertical"> <TableRow android:id="@+id/tr1" android:orientation="horizontal" android:layout_margin="10dp"> <ImageView android:contentDescription="@string/phone" android:src="@drawable/phone" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/phnText" android:layout_width="wrap_content" android:text="@string/phone" android:gravity="left|center_vertical" android:layout_marginLeft="10dp" android:textSize="25dp" android:textColor="#000" android:layout_height="50dp"/> </TableRow> <View android:layout_width="fill_parent" android:layout_height="1dip" android:background="#FF000000" /> <TableRow android:id="@+id/tr2" android:orientation="horizontal" android:layout_margin="10dp"> <ImageView android:contentDescription="@string/sms" android:src="@drawable/sms" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/smsText" android:layout_width="wrap_content" android:text="@string/sms" android:gravity="left|center_vertical" android:layout_marginLeft="10dp" android:textSize="25dp" android:textColor="#000" android:layout_height="50dp"/> </TableRow> </TableLayout> </LinearLayout> 

display this as a popup as below

  private void showPopUp() { final AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this); helpBuilder.setTitle(""); LayoutInflater inflater = getLayoutInflater(); final View checkboxLayout = inflater.inflate(R.layout.choose, null); helpBuilder.setView(checkboxLayout); final AlertDialog helpDialog = helpBuilder.create(); helpDialog.show(); TableRow tablerowPhone = (TableRow)checkboxLayout.findViewById(R.id.tr1); TableRow tablerowSms = (TableRow)checkboxLayout.findViewById(R.id.tr2); tablerowPhone.setOnClickListener(new OnClickListener() { public void onClick(View v) { helpDialog.dismiss(); Uri callUri = Uri.parse("tel:" + listview_array[4]); Intent intent = new Intent(Intent.ACTION_CALL, callUri); startActivity(intent); } }); tablerowSms.setOnClickListener(new OnClickListener() { public void onClick(View v) { helpDialog.dismiss(); Uri smsUri = Uri.parse("sms:" + listview_array[4]); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); startActivity(intent); } }); } 

call this showPopUp() method showPopUp() you want. so that you can set the height and width to the layout in the xml file

+18
source

Try it, it works for me

 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(layout); builder.setTitle("Title"); alertDialog = builder.create(); alertDialog.getWindow().setLayout(600, 400); //Controlling width and height. alertDialog.show(); 
+1
source

All Articles