I am making a custom dialog of which I want height and width to be default fit to all screen sizes.
But it is not happening so. The dialog is appearing very small though. THis is the XML for the dialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#D24379"
android:orientation="vertical" >
<TextView
android:id="@+id/txt_dia"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:textColor="@android:color/white"
android:textSize="15dp"
android:textStyle="bold" >
</TextView>
<LinearLayout
android:id="@+id/layButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal" >
<Button
android:id="@+id/yesButton"
android:layout_width="0.0dip"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:background="#ffffff"
android:text="@string/yes" />
<Button
android:id="@+id/noButton"
android:layout_marginLeft="5dp"
android:layout_width="0.0dip"
android:background="#ffffff"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:text="@string/no" />
</LinearLayout>
this is my dialog class
public class CustomDialogClass extends Dialog implements
android.view.View.OnClickListener {
public Activity c;
public Dialog d;
public Button yes, no;
public TextView content;
public CustomDialogClass(Activity a) {
super(a);
this.c = a;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.custom_dialog);
yes = (Button) findViewById(R.id.yesButton);
no = (Button) findViewById(R.id.noButton);
content=(TextView)findViewById(R.id.txt_dia);
yes.setOnClickListener(this);
no.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.yesButton:
break;
case R.id.noButton:
dismiss();
break;
default:
break;
}
dismiss();
}
}
How do I set the height and width to appear a default size such that it appears perfect on all screen size.
I am a getting a very small dialog.
getWindow(). setLayout(width, height);
If your dialog is made out of a vertical LinearLayout, just add a "height filling" dummy view, that will occupy the entire height of the screen. Nice!
requestWindowFeature(Window. FEATURE_NO_TITLE); dialog. getWindow(). setBackgroundDrawable(new ColorDrawable(0)); LayoutInflater inflator = (LayoutInflater) getApplicationContext() .
Add custom_layout. xml in that activity in which you want to show custom alert dialog here it is added in MainActivity. java.
Not Dialog Class use, Try This Class :
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ShowDialog();
}
private void ShowDialog() {
// TODO Auto-generated method stub
final Dialog dialog = new Dialog(context,
android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;
dialog.getWindow().setAttributes(lp);
Button yes = (Button) dialog.findViewById(R.id.yesButton);
yes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
Button no = (Button) dialog.findViewById(R.id.noButton);
no.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(
Intent.ACTION_PICK,
dialog.dismiss();
}
});
TextView content =(TextView) dialog.findViewById(R.id.txt_dia);
dialog.show();
}
}
Put this.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
in your custom dialog's onCreate()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With