Vineet Kumar Vineet Kumar - 4 months ago 12
Android Question

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.

Answer

I have changed your lay put try now

 <?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="150dp"
        android:background="#D24379"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/txt_dia"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_marginTop="10dp"
            android:layout_weight="0.20"
            android:text="Are you good?"
            android:textColor="@android:color/white"
            android:textSize="15dp"
            android:textStyle="bold" />

        <LinearLayout
            android:id="@+id/layButton"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_margin="5dp"
            android:gravity="center"
            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="YES" />

            <Button
                android:id="@+id/noButton"
                android:layout_width="0.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_weight="1.0"
                android:background="#ffffff"
                android:text="NO" />
        </LinearLayout>

    </LinearLayout>