Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
580 views
in Technique[技术] by (71.8m points)

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

I have a task to change the AlertDialog width and height by xml,I want make that become style,so I can use it easy.And that ,I need to change button of AlertDialog style also.Can you tell me a way to achieve the target。Thank you Very grateful。 PS,I'd better achieve the target by change xml。

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There are two methods 1) programatically 2) By 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 the layout to be displayed like 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 popup as like 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 where you want. so that you can set height and width to the layout in xml file


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...