Android 更改弹出对话框的大小

来源:互联网 发布:交换机端口流量监控 编辑:程序博客网 时间:2024/06/08 16:00

一.概述

在Android开发中,我们如果创建一个Dialog之后,它的大小是系统默认的,那么我们能不能改变这个大小呢,答案是肯定的,先看效果图,我们分别弹出三个大小不一样的对话框。
这里写图片描述

二.实现

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center">    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:onClick="show"        android:layout_height="wrap_content"        android:text="弹出四分之一" /><Button    android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"           android:onClick="show"        android:text="弹出一半" />    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"           android:onClick="show"        android:layout_height="wrap_content"        android:text="弹出全屏" /></LinearLayout>

很简单,三个按钮,点击弹出不同的对话框

java代码:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void show(View view) {        switch (view.getId()) {            case R.id.button1:                showDialog(0.25f);                break;            case R.id.button2:                showDialog(0.5f);                break;            case R.id.button3:                showDialog(1f);                break;        }    }    public void showDialog(float scale) {        // 创建对话框对象        Dialog dialog = new Dialog(this);        // 设置标题        dialog.setTitle("提示信息");        // 给对话框填充布局        dialog.setContentView(R.layout.dialog_layout);        // 获得当前activity所在的window对象        Window window = dialog.getWindow();        // 获得代表当前window属性的对象        WindowManager.LayoutParams params = window.getAttributes();        Point point = new Point();        Display display = getWindowManager().getDefaultDisplay();        // 将window的宽高信息保存在point中        display.getSize(point);        // 将设置后的大小赋值给window的宽高        params.width = (int) (point.x * scale);        params.height = (int) (point.y * scale);        // 方式一:设置属性        window.setAttributes(params);        // 方式二:当window属性改变的时候也会调用此方法,同样可以实现        // dialog.onWindowAttributesChanged(params);        dialog.show();    }}
0 0