Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set custom dialog height and width

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.

like image 621
Vineet Kumar Avatar asked Jun 17 '14 13:06

Vineet Kumar


People also ask

How do I set the width and height of a dialog fragment?

getWindow(). setLayout(width, height);

How can I make alert dialog fill 100% of screen size?

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!

How do I set margin to dialog in android programmatically?

requestWindowFeature(Window. FEATURE_NO_TITLE); dialog. getWindow(). setBackgroundDrawable(new ColorDrawable(0)); LayoutInflater inflator = (LayoutInflater) getApplicationContext() .

How do I show custom dialog?

Add custom_layout. xml in that activity in which you want to show custom alert dialog here it is added in MainActivity. java.


2 Answers

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();
            }
}
like image 132
Rutvij Avatar answered Nov 15 '22 19:11

Rutvij


Put this.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); in your custom dialog's onCreate()

like image 33
Abdul Wasae Avatar answered Nov 15 '22 21:11

Abdul Wasae